SQL Server 7.0 Copyright and Disclaimer

Information in this document is subject to change without notice. The names of companies, products, people, characters, and/or data mentioned herein are fictitious and are in no way intended to represent any real individual, company, product, or event, unless otherwise noted. Complying with all applicable copyright laws is the responsibility of the user. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

© 1988-2000 Microsoft Corporation. All rights reserved.

Microsoft, ActiveX, BackOffice, CodeView, Developer Studio, JScript, MS-DOS, MSDN, PivotTable, Visual Basic, Visual C++, Visual FoxPro, Visual InterDev, Visual Studio, Win32, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the U.S.A. and/or other countries.

(c) 1988-2000 Microsoft Corporation. All Rights Reserved.


Troubleshooting Update for SQL Server Books Online

The Troubleshooting section of Microsoft® SQL Server™ Books Online for SQL Server 7.0 has been updated. Material from the SQL Server Product Support Web site has been added and integrated with existing information. The Troubleshooting Update for SQL Server Books Online exists as a separate Help file (Tblshsp2.chm), which can be used in combination with SQL Server Books Online (Sqlbol.chm).

New Troubleshooting section | Contains
Online Troubleshooters | Highlights of online troubleshooters, new interactive problem-solving guides located on the Microsoft Product Support Web site.
Frequently Asked Questions | Expanded sets of frequently asked questions, arranged by subject area.
Supplemental Information About SQL Server 7.0 from PSS | Additional information provided by Product Support Engineers relating to issues users often need assistance with.


Using the Troubleshooting Update for SQL Server Books Online

Related topic links are implemented for jumps to material within this troubleshooting update. However, to view related topics that exist outside of the Troubleshooting Update for SQL Server Books Online (Tblshsp2.chm), see SQL Server Books Online for SQL Server 7.0 (Sqlbol.chm).

Viewing Related Topics in the Troubleshooting Update for SQL Server Books Online
  • Click underlined colored links to move between the updated troubleshooting topics.
Viewing Related Topics in SQL Server Books Online
  1. In a Related Topics list, note a topic title of interest that is not underlined or linked.

  2. On the Start menu, click Programs, Microsoft SQL Server 7.0 Books Online to open the complete set of online documentation for SQL Server 7.0.

  3. Click the Index tab, and search for the topic title or subject that you want.

Note The Troubleshooting section exists in SQL Server Books Online as it did prior to this update. Although new material has not been included, the topics are still useful.

Viewing Web-based Information

Numerous links to Microsoft Product Support Web pages are provided in the Troubleshooting Update. Links to the new online troubleshooters, as well as pertinent Microsoft Knowledge Base articles and white papers are also available. Every effort has been made to ensure the Web links are correct and will remain stable over time. However, if a link does not work, go to the MSDN Online Support Web page at http://support.microsoft.com/servicedesks/msdn, and navigate to the correct location.

For more information, see Viewing Online Troubleshooters and Other PSS Web-based Information.

Expanding Text in the FAQs

The topics in Frequently Asked Questions contain a format that allows the answer text to be hidden and then expanded. When you click near the plus sign, the text appears, for example:

How does expanding text work?

Answer:

Click the +Answer to expand the text. Click again to hide the answer.


Troubleshooting: Where to Start

As a starting point to troubleshooting a problem, you may find the answer in one of the new online troubleshooters from SQL Server Product Support. For more information, see Online Troubleshooters. In addition, you should review current error logs for information that may pinpoint the problem. Other current information about troubleshooting SQL Server can be found on the Highlights for SQL Server page, available from the MSDN Online Support Web page at http://support.microsoft.com/servicedesks/msdn.

Error Logs

The latest Microsoft® SQL Server™ error log provides complete information about events in SQL Server. You may also want to view the Microsoft Windows NT® application log, which provides an overall picture of events that occur on the Windows NT operating system, as well as events in SQL Server and SQL Server Agent. Both logs include informational messages (such as startup data), and both record the date and time of all events automatically. Typically, both logs are used in troubleshooting.

SQL Server events are logged according to the way you start SQL Server.

  • When SQL Server is started as a service under Microsoft Windows NT, events are logged to the SQL Server error log, to the Windows NT application log, or to both logs.

  • When SQL Server is started from the command prompt, events are logged to the SQL Server error log and to standard output (typically the monitor, unless output has been redirected elsewhere).

For information about how to view the logs, see Viewing Error Logs, and for information about monitoring these logs, see SQL Server Books Online for SQL Server 7.0.

Backward Compatibility Issues

If you encounter a problem during compatibility testing of SQL Server 7.0, see SQL Server Books Online for SQL Server 7.0. A list of changed features provides detailed information about each change, as well as recommendations on how to correct the problem.

Additional Resources

For access to the Microsoft Knowledge Base as well as other current information, a subscription to Microsoft TechNet or Microsoft Developer Network (MSDN™) can be very helpful. See these Web pages for more information:

  • Microsoft TechNet: http://www.microsoft.com/technet/

  • Microsoft Developer Network (MSDN): http://msdn.microsoft.com/

Related Topics

Monitoring the Error Logs

SQL Server Backward Compatibility Details

Troubleshooting Planning


Troubleshooting Planning

To minimize the effects of a server failure or other troubleshooting situation:

  • Develop and test a backup and recovery plan.

  • Use the Database Maintenance Plan Wizard to schedule the scripts to run during periods of low activity.

  • Verify the security permissions and roles you have planned for your databases.

  • Develop and test a disaster recovery plan.
Disaster Recovery Plan

The importance of disaster recovery assessment cannot be overstated. What is the business risk if you cannot get your data back? What is the cost for each hour's delay in getting your system back up and running? Do not assume that your data is quickly recoverable. Thoroughly understanding the steps ahead of time will minimize the stress and uncertainty imposed by a future disaster. Some important points to consider are:

  • Periodically assess the validity of the current disaster recovery plan.

  • Have sufficient hardware and staff to implement recovery procedures.

Related Topics

Choosing a Backup and Restore Strategy

Data Integrity Validation

Database Maintenance Plan Wizard

Disaster Recovery Planning

Managing Permissions

Planning to Back Up and Restore Databases


Online Troubleshooters

Microsoft Product Support has recently implemented Web-based interactive guides for pinpointing and resolving customer problems, called online troubleshooters. These advanced help systems use probability logic to calculate the most likely cause of a problem that a user may encounter. The topics in this section present highlights of the issues covered in each of the new troubleshooters for Microsoft® SQL Server™ 7.0.

To use an online troubleshooter, go to the page relating to your issue, and select one of the problems listed, for example "I can't create or administer a linked server" or "I can't establish a trusted connection." Subsequent statements and questions with interactive links help pinpoint and diagnose the trouble. Steps are then recommended to solve the problem as quickly as possible.

Related Topics

Using the Troubleshooting Update for SQL Server Books Online

Viewing Online Troubleshooters and Other PSS Web-based Information


Help with Clustering

The online Clustering Troubleshooter is designed to help you resolve problems you may encounter using Microsoft® SQL Server™ 7.0 Enterprise Edition with Microsoft Cluster Server (MSCS).

Note For international users of SQL Server Books Online for SQL Server 7.0, the text of the problems as well as the references to Knowledge Base articles appear in English so that this information can be found on nonlocalized Web sites.

Common starting points for troubleshooting clustering include:

  • My SQL Server services either totally fail or go into an "Online Pending" state where neither node ever fails over to the other node.

  • I'm having a problem related to the Microsoft Distributed Transaction Coordinator (MS DTC).

  • SQLMail envelope turns from red to green and immediately back to red.

  • I'm having problems with my Performance Monitor counters.

  • SQL Server can't log on to the network after migrating to the backup node.

  • SQL Server can't access the clustered disks.

  • In failover mode, SQL Server doesn't receive e-mail messages.

To access troubleshooters online, see Viewing Online Troubleshooters and Other PSS Web-based Information.

Related Knowledge Base Articles

Q195761 - INF: Frequently Asked Questions - Failover

Related Topics

Configuring SQL Server Failover Support

Failover Clustering FAQ


Help with Connectivity

The online Connectivity Troubleshooter is designed to help you resolve problems that may cause you to receive connectivity errors when you use Microsoft® SQL Server™ 7.0.

Note For international users of SQL Server Books Online for SQL Server 7.0, the text of the problems as well as the references to Knowledge Base articles appear in English so that this information can be found on nonlocalized Web sites.

Common starting points for troubleshooting connectivity include:

  • I can't connect from an ODBC application.

  • I can't connect through a firewall.

  • I can't connect. The specified SQL Server computer isn't found.

  • I can't establish a trusted connection.

  • I can't connect, and I receive a Login failed error message.

  • I can't register a new server in SQL Server Enterprise Manager.

To access troubleshooters online, see Viewing Online Troubleshooters and Other PSS Web-based Information.

Related Knowledge Base Articles

Q137983 - INF: How to Troubleshoot Orphaned Connections in SQL Server

Q109787 - INF: SQL Communication Errors 17832, 17824, 1608, 232, and 109

Related Topics

Isolating Connection Problems

Managing Security

Named Pipes Clients

Network Connectivity Options

Orphaned Sessions

TCP/IP Sockets Clients


Help with Data Transformation Services

The online Data Transformation Services Troubleshooter is designed to help you resolve problems you may encounter with Data Transformation Services (DTS) in Microsoft® SQL Server™ 7.0.

Note For international users of SQL Server Books Online for SQL Server 7.0, the text of the problems as well as the references to Knowledge Base articles appear in English so that this information can be found on nonlocalized Web sites.

Common starting points for troubleshooting DTS include:

  • I'm having a problem using DTS Designer or a wizard to create a DTS package.

  • I'm having a problem executing a scheduled package.

  • I'm having a problem executing a package that isn't scheduled.

  • My DTS package takes a long time to complete.

  • My DTS package takes a long time to stop running after it fails or is canceled.

To access troubleshooters online, see Viewing Online Troubleshooters and Other PSS Web-based Information.

Related Knowledge Base Articles

Q222073 - INF: Getting Started with Data Transformation Services (DTS)

Q201785 - HOWTO: Import FileSystem Data Using DTS and Index Server

Q198884 - FIX: DTS Cannot Save a Package to Repository with Login Greater than 20 Characters

Q221480 - BUG: DTS: Default Scheduling Information Displayed

Q221513 - BUG: DTS - Error Creating File Mapping View

Q207446 - BUG: Cannot Import Excel 97 Spreadsheet with 256 or More Columns

Q222183 - BUG: DTS Import/Export Wizard Does Not Display Scheduling

Related Topics

Overview of Data Transformation Services

Programming DTS Applications

Troubleshooting Data Transformation Services


Help with Distributed Queries

The online Distributed Query Troubleshooter is designed to help you resolve problems you may encounter when using distributed queries in Microsoft® SQL Server™ 7.0.

Note For international users of SQL Server Books Online for SQL Server 7.0, the text of the problems as well as the references to Knowledge Base articles appear in English so that this information can be found on nonlocalized Web sites.

Common starting points for troubleshooting distributed queries include:

  • I have difficulty with distributed queries to an online analytical processing (OLAP) server.

  • I have difficulty with distributed queries to Oracle.

  • Distributed query performance is degraded.

  • I receive a specific error message from a distributed query, and I want more information about it.

  • I can't create or administer a linked server.

To access troubleshooters online, see Viewing Online Troubleshooters and Other PSS Web-based Information.

Related Topics

Distributed Queries Error Messages

Distributed Queries: Resolving Common Problems


Help with Full-Text Search

The online Full-Text Search Troubleshooter is designed to help you resolve problems you may encounter when using the Full-Text Search feature in Microsoft® SQL Server™ 7.0.

Note For international users of SQL Server Books Online for SQL Server 7.0, the text of the problems as well as the references to Knowledge Base articles appear in English so that this information can be found on nonlocalized Web sites.

Common starting points for troubleshooting full-text search include:

  • I have a problem using CONTAINS or FREETEXT.

  • I can't enable databases for full-text search or full-text catalog creation.

  • I have a problem with full-text indexing or populating full-text catalogs.

  • Full-text indexing or searching performance is poor.

To access troubleshooters online, see Viewing Online Troubleshooters and Other PSS Web-based Information.

Related Topics

Full-text Catalogs and Indexes

Full-text Query Architecture

Full-text Index and Querying Concepts

Full-Text Search Overview

Troubleshooting Full-Text Search


Help with Performance

The online SQL Server Query Performance Troubleshooter is designed to help you resolve problems that may cause slow queries when you use Microsoft® SQL Server™ 7.0.

Note For international users of SQL Server Books Online for SQL Server 7.0, the text of the problems as well as the references to Knowledge Base articles appear in English so that this information can be found on nonlocalized Web sites.

Common starting points for troubleshooting performance include:

  • My SQL Server 7.0 application is slow.

  • I'm experiencing problems with blocking.

  • A stored procedure is being recompiled excessively.

  • Large batches of small queries are slower than expected.

  • An individual query is using a poor query plan.

To access troubleshooters online, see Viewing Online Troubleshooters and Other PSS Web-based Information.

Related Knowledge Base Articles

Q195760 - INF: Frequently Asked Questions - Server

Related Topics

Optimizing Database Performance

Performance Issues Covered in Knowledge Base Articles

Query Tuning


Help with Replication

The online Replication Troubleshooter is designed to help you resolve replication problems you may encounter when using Microsoft® SQL Server™ 7.0.

Note For international users of SQL Server Books Online for SQL Server 7.0, the text of the problems as well as the references to Knowledge Base articles appear in English so that this information can be found on nonlocalized Web sites.

Common starting points for troubleshooting replication include:

  • I can't create a publication.

  • I can't transfer reference constraints to filtered subscriptions.

  • I'm having a problem with a Distribution Agent.

  • I'm having a problem with a Log Reader Agent.

  • I'm having a problem with a Merge Agent.

  • I'm having a problem with Replication Monitor.

To access troubleshooters online, see Viewing Online Troubleshooters and Other PSS Web-based Information.

Related Knowledge Base Articles

Q195757 - INF: Frequently Asked Questions - Replication


Help with Setup

The online Setup Troubleshooter is designed to help you resolve problems that you may encounter when installing one of three editions of Microsoft® SQL Server™ 7.0. The editions covered are:

  • SQL Server 7.0, Desktop Edition

  • SQL Server 7.0, Standard Edition

  • SQL Server 7.0, Enterprise Edition

Note For international users of SQL Server Books Online for SQL Server 7.0, the text of the problems as well as the references to Knowledge Base articles appear in English so that this information can be found on nonlocalized Web sites.

Common starting points for setup troubleshooting include:

  • Does Setup stop responding when it tries to connect to the server?

  • Does your system meet the minimum software and hardware requirements?

  • Do you get an error message that asks you to close all ODBC components?

  • Is Family Logon the primary network logon?

  • Are you running the Beta 3 version of SQL Server 7.0 in Microsoft Windows® 95 or Windows 98?

  • Are you running an evaluation copy of Microsoft Windows NT®?

To access troubleshooters online, see Viewing Online Troubleshooters and Other PSS Web-based Information.

Related Knowledge Base Articles

Q195759 INF: Frequently Asked Questions - SQL Setup

Related Topics

Overview of Installing SQL Server

Setup and Installation FAQ


Help with SQL Mail

The online SQL Server 7.0 Mail Troubleshooter is designed to help you resolve problems that you may encounter when using the SQL Mail feature in Microsoft® SQL Server™ 7.0.

Note For international users of SQL Server Books Online for SQL Server 7.0, the text of the problems as well as the references to Knowledge Base articles appear in English so that this information can be found on nonlocalized Web sites.

Common starting points for troubleshooting SQL Mail include:

  • SQL Mail won't start with Microsoft Exchange Server.

  • SQL Mail causes exception error 35909.

  • SQL Mail won't send or receive messages.

  • SQL Mail won't start with a Microsoft Mail post office.

  • The sp_processmail system stored procedure fails, but I don't receive an error message.

To access troubleshooters online, see Viewing Online Troubleshooters and Other PSS Web-based Information.

Related Topics

MAPI Error Messages

Troubleshooting SQL Mail with Exchange Server


Viewing Online Troubleshooters and Other PSS Web-based Information

Online troubleshooters from Product Support Services start with common user problems, have up to date information, and will help you diagnose what's going on with your installation of Microsoft® SQL Server™ 7.0. You can get to the online troubleshooters from a number of access points; however the Knowledge Base article in the procedure below will be kept current on the location of SQL Server troubleshooters.

To view SQL Server troubleshooters

  1. Go to the following Knowledge Base article that links to the current location of the Microsoft online troubleshooters at Q193088 INF: SQL Troubleshooters Available on the Web.

  2. In this article, click the link to the SQL Server troubleshooters.

  3. On the Troubleshooters page, select SQL Server in the list of products.

    Note Depending on how you navigate to this page, the text below the list box changes. If SQL Server is not in the list, click List All Microsoft Products That Have a Troubleshooter, and then scroll down the list to find SQL Server.

  4. Click Go to open the list of SQL Server Troubleshooters.

  5. Select a SQL Server 7.0 troubleshooter from the list, and then click Next to start the online diagnostic process.
Viewing Troubleshooters and White Papers Using MSDN Online

As an alternative route to the SQL Server troubleshooters, and the best way to locate the white papers about SQL Server 7.0, follow these steps:

  1. Go to the MSDN Online Support Web page at http://support.microsoft.com/servicedesks/msdn.

  2. Click Support Highlights & FAQs, specify SQL Server, and then click Go.
Viewing SQL Server Knowledge Base Articles

Links to Knowledge Base articles within a topic take you directly to the article on the Web. You can also locate articles by title or number using the Microsoft Knowledge Base Search page, accessible from any product support Web page.

Related Topics

Online Troubleshooters


Viewing Error Logs

The Microsoft® SQL Server™ error log can be viewed using SQL Server Enterprise Manager or any text editor. The most current error log is named Errorlog (with no extension) and, by default, is located in the \Mssql7\Log directory.

To view the SQL Server error log from SQL Server Enterprise Manager

  1. Expand a server group, and then expand a server.

  2. Expand Management, and then expand SQL Server Logs.

  3. Click the SQL Server Log to view. Error log information appears in the details pane.

The Microsoft Windows NT® application log provides an overall picture of events that occur on the Windows NT operating system.

To view the Windows NT application log

  1. On the Start menu, point to Programs/Administrative Tools, and then click Event Viewer.

  2. If the application log is not displayed, on the Log menu, click Application.

    Microsoft SQL Server events are identified by the entry MSSQLServer in the Source column. SQL Server Agent events are identified by the entry SQLServerAgent. Microsoft Search service events are identified by the entry Microsoft Search.

  3. To view the log of a different computer, from the Log menu, click Select Computer.

    Complete the Select Computer dialog box.

    Note If you are viewing the log of the local computer, skip this step.

    Optionally, to display only SQL Server events, on the View menu, click Filter Events, and in the Source box, select MSSQLServer.

    To view only SQL Server Agent events, select SQLServerAgent instead.

  4. To view more information about an event, double-click the event.

Related Topics

Error Messages


Frequently Asked Questions

Microsoft SQL Server Product Support Services (PSS) has compiled a list of questions commonly asked by users of Microsoft® SQL Server™ 7.0. This list is available on the MSDN Online Support Web page at http://support.microsoft.com/servicedesks/msdn/. From the MSDN starting page, click Support Highlights & FAQs, select SQL Server, and then click Go.

The questions and answers on this Web page have been included in this Troubleshooting Update for SQL Books Online for SQL Server 7.0 as these topics:

  • SQL Server Books Online FAQ

  • SQL Server Enterprise Manager FAQ

  • Failover Clustering FAQ

  • Operating Systems and Hardware FAQ

  • Replication FAQ

  • Server FAQ

  • Setup and Installation FAQ

  • Uninstalling SQL Server 7.0 FAQ

  • Upgrading from SQL Server 6.x to SQL Server 7.0 FAQ

  • Upgrading Within Releases of SQL Server 7.0 FAQ

  • Upgrade Error Messages FAQ

  • Using Both SQL Server 6.x and SQL Server 7.0 FAQ


SQL Server Books Online FAQ

Why are some links in SQL Server Books Online different colors?

Answer:

The first time you install Microsoft® SQL Server™ Books Online for SQL Server 7.0, all of the links are one color, which means no linked topics have been visited. After you link to a topic, all the links for that topic appear as a different color. This is the standard behavior for HTML browsers.

How do I print a topic and include all of the linked subtopics?

Answer:

To print all linked documents to a topic, on the toolbar, click Print, and then select Print the selected heading and subtopics. To use CTRL+P to print, first click the right pane, press CTRL+P, and then select the Print all linked documents check box.

How can I order a printed copy of the SQL Server Books Online?

Answer:

To order the 12-volume set of product documentation for Microsoft SQL Server 7.0, call toll-free (800) 360-7561. The Part Number for the documentation is 228-00340. The content is identical to the SQL Server Books Online for SQL Server 7.0 that is included in the SQL Server 7.0 product CD.


SQL Server Enterprise Manager FAQ

How can I get my system databases to appear after they have been hidden from view in SQL Server Enterprise Manager?

Answer:

Right-click the server icon to change the setting that shows or hides system databases and system objects. Click Edit SQL Server Registration Properties, and then on the General tab, select Show system databases and system objects.

I'm having difficulty viewing the information in the results pane of SQL Server Query Analyzer. What can I do?

Answer:

If there is either too little or too much text in the results pane of SQL Server Query Analyzer, you can display the query results in a grid. Either press CTRL+D or click Results in Grid on the Query menu.

If you are still having difficulty viewing the appropriate data in the results pane, adjust the maximum number of characters per column. On the Query menu, click Current Connection Options, and then click the Advanced tab. In the Maximum characters per column box, enter the number of characters to display. To view more characters, set this number to 256.

When I create or edit a stored procedure or trigger using SQL Server Enterprise Manager, pressing the TAB key changes the context to each button. How can I indent my Transact-SQL statements?

Answer:

Press CTRL+TAB to indent the text of a stored procedure or trigger created or modified using SQL Server Enterprise Manager.

Why isn't the SQL Server Service Manager icon removed from the taskbar when the Service Manager window is closed?

Answer:

The SQL Server Service Manager icon shows the status of one of the Microsoft® SQL Server™ services. Closing the SQL Server Service Manager window only removes the dialog box from view; it does not affect the icon in the taskbar. To remove the icon from the taskbar, right-click the icon, and then click Exit.

How can I administer SQL Server through SQL Server Enterprise Manager without using the mouse?

Answer:

Press SHIFT+F10 to perform a mouse right-click. For more information about keyboard shortcut keystrokes, see Accessibility for MMC in SQL Server Enterprise Manager Help.


Failover Clustering FAQ

How do I upgrade SQL Server 6.5 to SQL Server 7.0 when the server running SQL Server 6.5 is part of a cluster?

Answer:

If the server running Microsoft® SQL Server™ version 6.5 is part of a cluster, follow these steps to upgrade the server to SQL Server 7.0:
  1. Remove clustering of SQL Server 6.5 on both nodes.

  2. Cluster a group for use with Microsoft Distributed Transaction Coordinator (MS DTC). For more information about configuring MS DTC for use with SQL Server in a clustered environment, see Using SQL Server Failover Support in SQL Server Books Online for SQL Server 7.0. This group should contain a shared disk, IP address, and network name resource. If such a group does not exist, the installation of SQL Server 7.0 will not be successful.

  3. Install SQL Server 7.0 on the primary node in the clustered configuration first. Ensure that this installation completes before beginning the installation of SQL Server 7.0 on a secondary node.

  4. Install clustering for SQL Server on one or both nodes.

For more information, see Supported Cluster Configurations in SQL Server Books Online for SQL Server 7.0.

How do I start up SQL Server in a clustered environment to include startup parameters such as -m, -f, and so on?

Answer:

To start SQL Server in a clustered environment and use the various startup parameters, perform the following steps:

Warning This procedure involves editing the registry. Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk.

For information about how to edit the registry, see the Registry Editor (Regedit.exe) Help topic Changing Keys and Values, or the Regedt32.exe Help topics Add and Delete Information in the Registry and Edit Registry Data. Note that you should back up the registry before you edit it. If you are running Microsoft® Windows NT®, you should also update your Emergency Repair Disk (ERD).

  1. Use the Microsoft Cluster Server (MSCS) Cluster Administrator to take the virtual server offline.

  2. Run REGEDT32 and navigate to the following key:

    HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer$<SVS>

  3. Change or add a startup parameter to the Parameters\SQLArg<n> key.

  4. Place the virtual server back online. This causes the registry keys to be read, and SQL Server will be started using the new parameters.

What hardware is required to run SQL Server 7.0 in a clustering environment?

Answer:

For a list of clustering-compatible servers see the Microsoft Windows® Hardware Compatibility List at http://www.microsoft.com/isapi/hwtest/hcl.idc. Also, for a list of supported hardware configurations and hardware configuration information, see the Microsoft Cluster Server Administrator's Guide, available on the Microsoft Windows NT 4.0, Enterprise Edition CD (disk 2 in the set).

Can SQL Server 6.5 be installed on one node and SQL Server 7.0 be installed on the other node of a cluster?

Answer:

No. If two versions of SQL Server participate in a cluster, they must be of the same version.

Where do I place the SQL Server 7.0 files to provide failover support?

Answer:

All database disks used by SQL Server and all resources that support SQL Server should be installed on shared disks. However, note that, as part of the normal cluster setup, some files will be copied to the local disk on both nodes of the cluster.

How do I shut down SQL Server from the command line without the Cluster Service interpreting this shutdown as a failure?

Answer:

The proper way to shut down SQL Server from the command line is to use the Cluster.exe application that comes with Microsoft Windows NT Server, Enterprise Edition. Cluster.exe is installed as part of the typical Windows NT Cluster Setup. This application can also be run on a Windows NT Workstation or member server computer to install only the Cluster Administrator and the other administrative applications. The basic syntax for this command is:

cluster [cluster name] RESOURCE [resource name] /option

The /option switch controls this functionality. For a nonvirtualized server, the /option switch set to /online is equivalent to the command net start mssqlserver (the method to start SQL Server from the command line), and the /option switch set to /offline is equivalent to net stop mssqlserver (the method to shut down SQL Server from the command line). This procedure can be performed on the Generic Service, the SQL Server Agent 7.0, and the SQL Server 7.0 resources.

The following are two examples of how to use this command syntax:

  • To take the SQL Server 7.0 resource offline if the Cluster Name is SQLCluster and the resource is named VirtualSQL (where VirtualSQL is the name of the SQL Server 7.0 resource, not the virtual network name resource):
    cluster "SQLCluster" resource "VirtualSQL" /offline
  • To bring the SQL Server 7.0 resource back online:
    cluster "SQLCluster" resource "VirtualSQL" /online

Related Topics

Help with Clustering


Operating Systems and Hardware FAQ

Can I install SQL Server 7.0 on a server running Windows NT 4.0, Terminal Server Edition?

Answer:

This is not currently supported but it is being investigated for possible inclusion in a future Microsoft® SQL Server™ 7.0 Service Pack.

What operating systems support SQL Server 7.0?

Answer:

This table shows the SQL Server editions and the operating systems they require.

SQL Server edition | Required operating system
SQL Server, Standard Edition | Microsoft Windows NT® Server 4.0 or later
SQL Server, Enterprise Edition | Windows NT Server, Enterprise Edition, version 4.0 or later.
SQL Server, Desktop Edition | Microsoft Windows® 95, Microsoft Windows 98, or Microsoft Windows NT Workstation 4.0 or later.

What are the minimum hardware requirements for installing SQL Server 7.0?

Answer:

This table shows the minimum hardware requirements for installing SQL Server 7.0.

Hardware | Requirement
Computer | DEC Alpha AXP and compatible systems, or Intel® or compatible (Pentium 166 MHz or higher, Pentium PRO, or Pentium II)
Memory | 32 MB of RAM
Disk drive | A CD-ROM drive, plus a hard disk drive with at least 80 MB of free disk space.

Other installation options are shown in this table.

Installation Option | Free disk space required
Full installation | 210 MB
Typical installation | 185 MB
Management tools only | 90 MB
Minimum installation | 80 MB

What are the installation limitations of installing SQL Server 7.0 Desktop Edition on a computer running Windows 95 or Windows 98?

Answer:

These features of Microsoft SQL Server 7.0 Desktop Edition are not available on a computer running either Microsoft Windows 95 or Windows 98:

  • Incoming named pipe connections

  • Windows NT Authentication

  • Asynchronous I/O

  • Transaction-based publishing

  • Clustering

  • Full-text search

  • Automatic detection of Unicode files

Can I install SQL Server if the Windows NT computer name contains a hyphen (-)?

Answer:

Yes, SQL Server now supports all computer names that are valid under Microsoft Windows NT.

When I try to start SQL Server 7.0, I receive the error message "Your SQL Server installation is either corrupt or had been tampered with (unknown package id) Please rerun setup." What causes this and how can I resolve it?

Answer:

This error message appears if you have renamed the Windows NT Server computer on which SQL Server 7.0 is installed. SQL Server 7.0 uses the computer name of the Windows NT Server internally. Therefore, when you change the Windows NT Server computer name, SQL Server detects a different name and generates the error message.

Note Your data has not been corrupted or damaged in any way.

To resolve this error and restart SQL Server, you can do either of the following:

  • Rerun SQL Server 7.0 Setup

    Doing so will not reinstall SQL Server or any components, but it will update SQL Server 7.0 internally to reflect the new Windows NT Server computer name. You will also need to update SQL Server's internal server name by running these stored procedures:

    sp_dropserver <old_name>
go
sp_addserver <newname>, local
go
  • Change the computer name

    Change the Windows NT Server computer name back to the name it had when you first installed SQL Server 7.0.

Do I need Microsoft Internet Explorer 4.01 Service Pack 1 to install only the client connectivity tools on my clients?

Answer:

No. If you want to install only the client connectivity tools, you do not need Microsoft Internet Explorer 4.01 Service Pack 1. However, if you intend to install the management tools or the SQL Server Books Online for SQL Server 7.0, you do need Internet Explorer 4.01 Service Pack 1.

Why do I get the following error message when I try to install the client connectivity tools on a computer running Windows 95?

Error message:

Based on your selection setup has determined the following systems requirements are not met. Exit setup and install the missing requirements from the CD or change your selections. Distributed Component Object Model (DCOM) for Microsoft Windows 95

Answer:

This message occurs if the required DCOM components are not installed on the computer running Microsoft Windows 95. You can install DCOM from the SQL Server 7.0 CD. To do this and continue with SQL Server 7.0 Setup, perform these steps:
  1. Browse the SQL Server 7.0 CD and locate the Processor_Type\Other folder, where Processor_Type is the type of architecture of the computer (for example, Alpha or Intel x86).

  2. Run the Dcom95.exe executable file.

  3. After you have installed DCOM for Windows 95, restart your computer, and then run SQL Server 7.0 Setup again.

I'm getting an error message about problems installing the Enterprise Edition or the Standard Edition on Windows NT Server, Windows NT Workstation, Windows 98, Windows 95, or the BackOffice Small Business Server. What do these messages mean?

Answer:

Error messages:

The Enterprise Edition server component cannot be installed on Windows NT Server using this CD. Only client components will be available for installation.

Or

The Standard Edition server component cannot be installed on Windows NT Workstation using this CD. Only client components will be available for installation.

Or

The Standard Edition server component cannot be installed on Windows 98 using this CD. Only client components will be available for installation.

Or

The Standard Edition server component cannot be installed on Windows 95 using this CD. Only client components will be available for installation.

Or

The Enterprise Edition server component cannot be installed on BackOffice Small Business Server using this CD. Only client components will be available for installation.

Each of these messages indicates that the edition of SQL Server 7.0 that you are trying to install is not supported by the operating system. This table shows the SQL Server 7.0 editions and the operating systems each requires.

Edition of SQL Server 7.0 | Operating systems
Enterprise Edition | Microsoft Windows NT Server Enterprise Edition
Standard Edition | Microsoft Windows NT Server, Windows NT Server Enterprise Edition, or Microsoft BackOffice® Small Business Server
Small Business Edition | Microsoft BackOffice Small Business Server
Desktop Edition | Microsoft Windows 95, Windows 98, Windows NT Workstation, or Windows NT Server: Standard or Enterprise Edition

Why does Microsoft Distributed Transaction Coordinator (MS DTC) activate my dial-up service to the Internet when I start (or restart) my computer?

Answer:

By default, MS DTC is configured to start automatically when a Microsoft Windows NT or Windows 98 system starts. You can prevent MS DTC from automatically starting after restarting a Windows 98 computer by making a change to the system registry.

Warning Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk

For information about how to edit the registry, see the Registry Editor (Regedit.exe) Help topic Changing Keys and Values, or the Regedt32.exe Help topics Add and Delete Information in the Registry and Edit Registry Data. Note that you should back up the registry before you edit it. If you are running Windows NT, you should also update your Emergency Repair Disk (ERD).

To prevent MS DTC from automatically starting

  1. Use Registry Editor to find the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServics key.

  2. Delete the value entry named MSDTC.

To enable automatic startup of MS DTC again

  1. Start at the same registry key: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServics key.

  2. Use Registry Editor to create a value entry named MSDTC with the string value msdtcw.

Is it possible to have SQL Server start automatically on computers running Windows 95 or Windows 98?

Answer:

Yes. In the SQL Server Service Manager there is an option called Autostart service when OS starts.

Why won't SQL Server 7.0 install on a computer that has a Cyrix chip installed?

Answer:

Older versions of Cyrix chips do not support the complete Pentium instruction set. SQL Server 7.0 makes use of some of these instructions; therefore, the Setup program detects and refuses to install on those older chips.

Related Topics

Appearance of Internet Connection Dialog Box at Startup of Windows 95 or Windows 98

Troubleshooting the Operating System


Replication FAQ

When is the MSreplication_subscriptions table created on the Subscriber?

Answer:

The Distribution agent creates the MSreplication_subscriptions table at startup if the table does not already exist. In addition, the sp_addpullsubscription stored procedure creates the MSreplication_subscriptions table if the table does not already exist at the Subscriber.

What .exe or .dll file is called for each agent, and where are the agent parameters stored?

Answer:

This table shows the agent names and associated files.

Agent name | File name
Log Reader Agent | Logread.exe
Snapshot Agent | Snapshot.exe
Distribution Agent | Distrib.exe
Merge Agent | Replmerg.exe

Note The Distribution Agent and the Merge Agent can also be invoked through the Sqldistx.dll and Sqlmergx.dll Microsoft® ActiveX® interfaces.

Do I need multiple distribution databases?

Answer:

In most cases, you need only one. This feature is for users who are centralizing replication operations and administration and want one distribution server to host many Publishers. You can support many Publishers to one distribution database, but there may be cases in which you want to separate logical replication applications into separate databases for administration purposes. Multiple distribution databases may also provide a performance benefit by reducing contention (both writing to and reading from the distribution database).

Can all servers in a merge setup have the same priority?

Answer:

The Publisher and Subscriber can never have the same priority. Microsoft SQL Server™ version 7.0 enforces this while adding subscriptions. However, if there are two subscriptions (for example, S1 and S2) that have the same priority, the first subscription that propagates changes to the Publisher succeeds. For example, if S1 and S2 make changes simultaneously, the first one to merge changes with the Publisher succeeds. The same rule applies to local subscriptions, which essentially have a priority of 0 (the first one to the hub succeeds).

Synchronizing on Internet publications fails with the error "Couldn't deliver schema information." Why?

Answer:

It is possible that the file copy operations failed. By default, agents used with pull subscriptions use the Universal Naming Convention (UNC) path set for the Distributor and Publisher to open the files. If the computer is not on the Local Area Network (LAN), UNC will not work. You can set up an FTP server at the Distributor and set the Merge Agent command line to include an FTP address. Publications enabled for the Internet will have the initial snapshot downloaded to the client computer by the Merge Agent through FTP before it is applied to the Subscriber.

Is it possible to do a merge replication from SQL Server 7.0 to a Microsoft Access 97 database?

Answer:

Merge replication to Microsoft Access 97 databases is supported in Microsoft Access 2000. This merge replication also requires the Jet Replication Provider, which is included in SQL Server 7.0 and Microsoft Office 2000.

Is it possible to pull a merge publication from an Access 97 database using the replication ActiveX control?

Answer:

You can use the ActiveX control to merge a pull subscription from an Access .mdb file to a merge publication in SQL Server 7.0. For sample code that demonstrates this, see the replication samples included in the file \devtools\samples\sqlrepl\sqlrepl.zip on the SQL Server 7.0 CD.

Is it possible to do a merge replication from SQL Server 7.0 to ODBC Subscribers?

Answer:

You can push a snapshot or transactional publication to heterogeneous ODBC Subscribers, but not merge publications.

Is it possible to pull a merge publication from any ODBC Subscriber from SQL Server 7.0 using the replication ActiveX control?

Answer:

No. Merge replication is supported only with SQL Server 7.0 and Microsoft Jet 4.0.

What is happening to "Restricted" publications?

Answer:

Restricted publications, as implemented in SQL Server 6.5, are no longer supported. However, SQL Server 7.0 has Publication Access Lists (PALs). With a PAL, you can specify Microsoft Windows NT® groups or standard logins that can subscribe to a specific publication. For more information, see Publication Access List in SQL Server Books Online for SQL Server 7.0.

I used the Uninstall Publishing And Distribution Wizard, and the physical files for the distribution database persisted on my hard disk. Is this by design? When I reinstall replication, what will happen?

Answer:

When you remove distribution, SQL Server attempts to remove the physical files. However, if other clients are using the distribution database or if there is a sharing violation when the file is being deleted, the file will not actually be removed from the hard disk. If the physical file is not removed and you try to install distribution again, a new name will be used for the distribution database.

If I create a snapshot publication with one table as an article, and then change the schema of the published table (for example, by adding a column to the table), will the new schema ever be applied at the Subscribers?

Answer:

Changes to the schema of a published table are not replicated in SQL Server 7.0. If you want to replicate the new column, you must create a new publication and subscribe to it.

What is a good way to see the command in MSrepl_commands?

Answer:

In the distribution database, execute the sp_browsereplcmds stored procedure.

What if the Snapshot Agent has not completed when the Distribution Agent starts?

Answer:

This is not a problem if the Distribution Agent runs at the same time as the Snapshot Agent. However, if the Distribution Agent runs and there is no snapshot available, it will shut down with a message stating that a snapshot is not yet available, unless it has been configured to run continuously. In that case, the Distribution Agent waits for the Snapshot Agent to finish.

On Windows NT Server, transactional replication is unavailable. Why?

Answer:

Transactional replication is unavailable when you are running Microsoft SQL Server, Desktop Edition. The SQL Server Desktop Edition can be installed on any platform.

Checksum validation fails after using an ALTER TABLE statement, even after a resynchronization. Why?

Answer:

Publication validation simply calls article validation on all the articles in the publication. For article validation to work correctly, the tables should have the same binary on-page structure at the Publisher and the Subscriber. If the table was altered and even if you resynchronize later, the on-page structure is altered on the Publisher and is not the same as at the Subscriber. If you rely on validation, you should unpublish the table, drop it and re-create it with the proper structure and then publish the table.

Using immediate updating Subscribers, the published table is altered. Why?

Answer:

In SQL Server 7.0, tables used in publications are required to have a SQL Server timestamp column. If one does not exist, SQL Server 7.0 adds one automatically when you create the publication. If you stop publishing a table, you can drop the timestamp column. Applications will work unchanged against tables with the timestamp column because you do not have to include this column in qualified INSERT, UPDATE, or DELETE statements.

Will Host Data Replicator (HDR) work on SQL Server 7.0?

Answer:

No. HDR is supported only with SQL Server 6.5. If you want to use SQL Server 7.0, use Data Transformation Services (DTS).

Related Topics

Help with Replication

Troubleshooting Replication


Server FAQ

What are the new reserved keywords for SQL Server 7.0?

Answer:

The new reserved keywords for Microsoft® SQL Server™ 7.0 are:
  • BACKUP

  • DENY

  • PERCENT

  • RESTORE

  • TOP

How does SQL Server decide whether or not to use indexes?

Answer:

SQL Server is a cost-based optimizer, not a rule-based system. Being cost-based, SQL Server can therefore be syntax-independent and literally rank each execution strategy based on the projected number and size of the results set. If you want to force table scans or index strategies, you can only guarantee their use by using index hints. This is generally not recommended because the enforced plan may not be optimal, for example, if the table changes its size. At times, however, forced scans may be necessary.

It is difficult to specify a basic set of rules under which the query processor will always pick a table scan or index seek. The use of an index access strategy is usually favored over table scans, unless the choice is very clear (for example, in the case when all rows are wanted). Table scans acquire shared locks, and can thereby greatly reduce concurrency (that is, multiuser access). This is why table scans are avoided whenever possible.

Scan decisions are based on anticipated execution costs; therefore, there is no size limit below which indexes are ignored. However, if the entire table fits on a single page, there are very few cases, if any, in which indexes will be of value.

Why does the creation of a UNIQUE index stop on multiple NULLs in a column?

Answer:

SQL Server does not support the occurrence of multiple rows with null values in the same column of a UNIQUE index.

Will my GROUP BY query result sets be ordered when returned if I am running in SQL Server 6.5 compatibility mode?

Answer:

In SQL Server 6.5, if a query contains a GROUP BY clause for the topmost SELECT, the result is always sorted, because groups are formed by accessing the data in the order of the grouping values. However, SQL Server 7.0 may use hashing to form the groups, and then the groups may be returned in random order if there is no ORDER BY clause specified in the query.

If you are running SQL Server 7.0 in the 6.5 compatibility mode and there is a GROUP BY for the topmost SELECT and there is no ORDER BY, SQL Server will add an ORDER BY clause to the query before executing it so that the same behavior as observed in SQL Server 6.5 is maintained.

In general, if ordering is required, use the ORDER BY clause. This will always produce the correct result regardless of the compatibility mode.

Can I run multiple copies of SQL Server at the same time on one computer?

Answer:

No, except if you have an active/active failover configuration hosting separate SQL Server 7.0 virtual servers on a Microsoft Cluster Server (MSCS) and one of the nodes fails.

Although you can use the SQL Server 7.0 vswitch utility to switch back and forth between a single copy of SQL Server 6.5 and a single copy of SQL Server 7.0 on one computer, only one version can be active at a time. This utility is not intended to allow both versions to be actively used on a server. However, you can use this utility to switch from one version to another when necessary.

I'd like to start SQL Server in a minimum configuration mode to do some troubleshooting. How can I do this?

Answer:

Use the -f option of sqlservr to start SQL Server with minimal configuration. For more information, see sqlservr Application in SQL Server Books Online for SQL Server 7.0.

What are the conditions under which deferred updates occur in SQL Server 7.0?

Answer:

In SQL Server 7.0, all updates are in-place (direct), provided that the column or columns participating in the clustered index key are not changed. If a change is made to a UNIQUE clustered key, the update plan runs in a hybrid mode in which the query processor combines direct and deferred updates. If the clustered key is not UNIQUE, all of the updates are run as deferred.

You can use SHOWPLAN to see examples of how this behavior works. Look for the SPLIT and COLLAPSE operators in the plan. If you find a SPLIT below the clustered index update, one of the clustering keys must have been changed. If a COLLAPSE operator is found, the update is running in a hybrid mode; SQL Server collapses delete and insert to the same key values into an in-place update.

Note The behavior of the update (whether it's direct, deferred, or a combination of the two) holds true for any index.

Why does using SET QUOTED_IDENTIFIER ON within my stored procedures not affect the stored procedure's behavior?

Answer:

Stored procedures maintain the QUOTED_IDENTIFIER setting that was active at the time that the stored procedures were compiled. Stored procedures go through distinct compile and execute phases, and the entire stored procedure is compiled as a unit. Because the QUOTED_IDENTIFIER setting affects the way SQL Server parses the stored procedure, it is not possible to change the setting during the compile phase. During the execution phase, by the time the SET QUOTED_IDENTIFIER statement is executed, the entire stored procedure has been compiled. Therefore, changes to the setting within the stored procedure have no effect.

To change the QUOTED_IDENTIFIER setting of a stored procedure, you must drop and re-create the stored procedure with the QUOTED_IDENTIFIER setting you want. It is not possible to have different sections of the same stored procedure execute with different QUOTED_IDENTIFIER settings. If different sections of code require a different QUOTED_IDENTIFIER setting, consider splitting the sections into separate stored procedures.

For more information, see Delimited Identifiers in SQL Server Books Online for SQL Server 7.0.

What is the bulk copy program (BCP) TABLOCK option?

Answer:

SQL Server 7.0 has a new lock type, BU, for Bulk Update. This lock is compatible only with itself (it is shared among Bulk Update processes), SchemaStability, and NullLock. The bcp utility TABLOCK option is equivalent to the TABLOCK table-level locking hint.

Does enabling the "torn page" database option add any measurable performance overhead to a server?

Answer:

The torn page option does not add much CPU cost at all, but it can increase contention on "hot" pages. With torn page detection off, a page can be accessed while it is being written to disk. This is not true if torn page detection is on.

When does SQL Server check for torn pages? At startup? Any time it reads a page from disk?

Answer:

Torn page detection is checked whenever a page is read from disk. In practice, this is usually during recovery, because any page on which the write did not complete during normal operations is very likely to be read by recovery (except for nonlogged operations, such as index creation, bulk copy, and so on).

What happens when SQL Server detects a torn page?

Answer:

When a torn page is detected, a severe I/O error is raised. This error closes the connection. The database is only marked suspect if the torn page is detected during recovery.

How can I recover from torn pages?

Answer:

Restoring the database from a backup and rolling the transaction log forward should correct the problem with no data loss.

What situations are most likely to cause torn pages?

Answer:

Lab tests have shown that torn pages are likely to happen when disk writes are occurring and power is lost. If you do not have a battery backup or uninterruptible power supply (UPS), you should consider enabling the torn page option.

If the transaction log is lost due to a hard disk failure, can incremental backups and single table backups still be performed?

Answer:

Yes. You can retrieve data from the database to perform a backup even if recovery has not been run successfully. Depending upon the data consistency, you can use the bcp utility to retrieve tables. After you have retrieved data or tables, you can run a backup as usual.

Why is my reported log space never 0 (zero), even after truncating the log?

Answer:

In SQL Server 7.0, the log truncation granularity is the virtual log file; in SQL Server 6.x it is a page. Consider an example in which a log configuration consists of four virtual log files. In this example, even if there are no outstanding or unreplicated transactions that prevent truncation of the log after backup, at least 25 percent of the log will always be "in use" because there is always a small portion of the log in use, thereby causing at least one virtual log file to be marked as busy.

In SQL Server 6.x, truncating the log (even to throw it away) requires scanning through the page chain and deallocating pages. In SQL Server 7.0, this change has improved efficiency. Truncating the log is as simple as changing the status on a virtual log file from a "used but doesn't contain active log" state to "usable."

It is still possible to have a process back up the log when it reaches some level of being full. However, SQL Server 7.0 differs from SQL Server 6.x in that the smallest "fullness" level that can be achieved through a transaction log backup and truncation is (1/n * 100) percent, where n is the number of virtual log files in the database configuration.

Because of this new method of managing transaction log activity, it is no longer necessary to run DBCC CHECKTABLE syslogs to get an accurate determination of log space used.

DBCC SHRINKDB is not shrinking my log. Why?

Answer:

DBCC SHRINKDATABASE shrinks data files on a per-file basis, but shrinks log files as if all the log files existed in one contiguous log pool.

The shrinking of log files is not immediate and does not occur until the active portion of the log moves. As updates are performed on the database, the shrink operation occurs at checkpoints or transaction log backups. Each log file is marked with the target_percent for the shrink operation. Each subsequent log backup or log truncation attempts to shrink the file to bring its size as close to the target_percent as possible. Because a log file can be shrunk only to a virtual log file boundary, it may not be possible to shrink a log file to a size smaller than the size of a virtual log file, even if it is not being used.

I've been seeing some error messages about corrupt data. What should I do?

Answer:

First, execute DBCC CHECKDB or DBCC CHECKALLOC without a repair clause to determine the extent of the data corruption. Then, execute either DBCC CHECKDB or DBCC CHECKALLOC, specifying a repair clause.

Important If executing either DBCC CHECKDB or DBCC CHECKALLOC with one of the repair clauses does not correct the index problem, or if you are unsure what effect DBCC CHECKDB or DBCC CHECKALLOC with a repair clause has upon your data, contact your primary support provider.

For more information, see Reporting Errors to Your Primary Support Provider.

What causes a suspect database? How can I fix this?

Answer:

A database can become suspect if one of these conditions is true:
  • One or more database files are not available.

  • The entire database is not available.

  • One or more database files are corrupted.

  • A database resource is being held by the operating system.

To resolve a suspect database

  1. Check the SQL Server error log and resolve all problems.

  2. Reset the suspect status by executing sp_resetstatus.

For more information, see Resetting the Suspect Status and Troubleshooting Recovery in the Related Topics list.

Related Topics

Resetting the Suspect Status

Server and Database Troubleshooting

Troubleshooting Recovery

Using Both SQL Server 6.x and SQL Server 7.0 FAQ


Setup and Installation FAQ

What do I need to do if I have an unsuccessful installation or I find an error in the Setup program?

Answer:

Note If the Setup program fails, changes to the operating system are rolled back, including removal of any copied files and removal of changes to the registry.

If the installation fails or you find an error in the Setup program, these files can help you determine what went wrong:

  • Sqlstp.log

    This file is located in the \Windows or \WinNT directory. Sqlstp.log file contains information about what the Setup program is doing. By reviewing this file, you can get an idea of where setup is failing.

  • SQL Server error log and Cnfgsvr.out

    If the setup process is failing in configuration, review both the SQL Server error log in the \Mssql7\Log directory and the Cnfgsvr.out file in the \Mssql7\Install directory. SQL Server Setup runs an application called Cnfgsvr.exe to configure the SQL Server. This application starts SQL Server, connects to it, and runs the initial installation scripts. Any error encountered during this process is written to the Cnfgsvr.out file. When SQL Server starts, it generates an error log that contains errors SQL Server may encounter. This file, called errorlog, is in the \Mssql7\Log directory.

  • Any other error logs located in the \Mssql7\Log directory.

  • Any other files remaining in the target program directory (by default, \Mssql7).

  • The Setup.log files, located in your \Windows or \WinNT directory.

If you cannot determine the cause of the setup failure, save the files mentioned above and call Microsoft Product Support Services to contact a SQL Server Support Professional.

How do I start an unattended setup?

Answer:

To start an unattended installation, you must first generate an .iss file. To create this file, start SQL Server Setup with the -r option, and then interactively make the selections you want. After a successful installation, the Setup.iss file is created in the \Windows directory. You can copy or move this file to another location if you want. On subsequent installations, you can start SQL Server Setup and specify a previously generated .iss file as input by using the -f1 Setup command line option.

How do I install just the client and Profiler?

Answer:

In Custom Setup, select the Client Connectivity and Profiler options.

Can I perform a remote installation?

Answer:

Yes. The option to perform a remote installation appears on the first screen of SQL Server Setup, but note that all prerequisites must first be installed on the remote computer.

How can I install only the SQL Server Books Online?

Answer:

In Custom Setup, you can select the option to install only SQL Server Books Online. You can also run SQL Server Books Online without installing it on your computer by selecting Browse Books Online from the initial Autorun screen. (Autorun.exe is the installation program on the SQL Server CD.)

How do I rebuild the master database?

Answer:

To rebuild the master database, you can use the rebuildm utility, Rebuildm.exe, which is located in the \Mssql7\Binn directory.

Rebuilding the master database also rebuilds the model and msdb databases.

How do I rebuild the registry?

Answer:

To rebuild the registry entries for SQL Server 7.0, you can use the regrebld utility, Regrebld.exe, which is located in the \Mssql7\Binn directory.

After SQL Setup completes, the registry is rebuilt automatically using Regrebld.exe. This utility creates an image of all the SQL Server registry entries, with file names of Mssql7*.rbk.

Running Regrebld.exe with the -Restore option places the registry key images into the registry. If the keys already exist, they are replaced. If changes are made to the SQL Server installation after the initial setup, the backup copy of the registry keys is not updated automatically. If changes are made after installation, run Regrebld.exe manually to update the registry key information. If Regrebld.exe is run without any parameters, it will also rebuild the SQL Server icons.

How do I reconfigure my server network protocols?

Answer:

You can use the Server Network utility, located in the SQL Server program group, to reconfigure your server network protocols.

When I run SQL Server Setup, why do I get an error asking me to close all ODBC components?

Answer:

SQL Server 7.0 Setup installs Microsoft Data Access Components (MDAC) 2.1, which installs newer ODBC components. Therefore, all applications that use ODBC must be shut down to allow a successful MDAC installation. Applications that use ODBC include Microsoft Internet Information Server, Microsoft System Management Server, Microsoft Access, and ORACLE.

Whenever I type information into a dialog box, click Back, and then click Next again, the information that I originally typed in the dialog box is lost. Why does this happen?

Answer:

This is currently a limitation of InstallShield dialog boxes.

When I installed SQL Server 7.0, the new program group did not appear. What can I do to make the new program group appear?

Answer:

Either log off and log back on, or click an icon on the desktop and press F5 to perform a screen refresh.

How can I change the default Net-Library on my server?

Answer:

Use the SQL Server Network Utility.

Related Topics

Help with Setup

Informational Files Created by SQL Server Setup

Testing an Installation of SQL Server 7.0

Troubleshooting SQL Server Setup


Uninstalling SQL Server 7.0 FAQ

How do I uninstall SQL Server 7.0?

Answer:

You can uninstall Microsoft® SQL Server™ in any one of these ways:
  • On the Start menu, point to Programs, point to Microsoft SQL Server 7.0, and click Uninstall SQL Server 7.0.

  • Use Add/Remove Programs in Control Panel to remove SQL Server 7.0.

  • Run a scripted uninstall.

How do I start an unattended uninstallation?

Answer:

When SQL Server 7.0 is successfully installed, an uninstall script file, Uninst.isu, is created. This file is located in the directory you specified for your program files. To start an unattended uninstallation, run the UnInstallShield executable, Isuninst.exe, and point it to your uninstall script file.

Why do I have to close the SQL Server Service Manager before I uninstall?

Answer:

You must shut down the SQL Server Service Manager to ensure that no SQL Server-related services are running. In earlier versions of SQL Server, the Setup program attempts to shut down these services, but success is not guaranteed.

Why does the final uninstall report always state that it cannot remove folders?

Answer:

The UnInstallShield installer only removes what it installs.

Some files, such as those for the tempdb system database, are created outside the bounds of the InstallShield installation routine. When the InstallShield uninstaller runs, it tries to delete the folders that it created (MSSQL7, Binn, Data, and Log) and finds that these folders are not empty. However, the .dll file that is run after UnInstallShield is complete (Sqlsun.dll) removes files such as those for tempdb and these folders.

Note Any error logs, trace files, or user data that may remain in these directories are not removed.


Upgrading from SQL Server 6.x to SQL Server 7.0 FAQ

Note The terms "upgrading" and "converting" are sometimes used interchangeably in these topics. In the process of upgrading from SQL Server 6.x to SQL Server 7.0, databases are converted.

Which SQL Server 6.5 service pack is required to upgrade?

Answer:

Service Pack 3 or greater is required to switch back and forth between Microsoft® SQL Server™ 6.x and SQL Server 7.0. However, Microsoft Product Support Services recommends that you use the latest service pack.

Why do I need to install Internet Explorer 4.0, Internet Explorer Service Pack 1, and Microsoft Windows NT Service Pack 4 before installing SQL Server 7.0?

Answer:

You must install Microsoft Internet Explorer version 4.0 and Internet Explorer Service Pack 1 to use SQL Server Enterprise Manager. SQL Server Enterprise Manager is now a snap-in to Microsoft Management Console (MMC), which requires Internet Explorer 4.0. You must install Microsoft Windows NT® Service Pack 4 to use new features in SQL Server, such as scatter-gather I/O.

How long will the SQL Server 6.x to SQL Server 7.0 database-conversion process take?

Answer:

Many factors will affect the amount of time needed to convert SQL Server 6.x databases to SQL Server 7.0. Each object in the SQL Server 6.x database must be rebuilt in the SQL Server 7.0 database, and every row must be transferred. Depending on the complexity of each database, the length of time needed to convert two 10 GB databases that have differing numbers of rows and objects may vary widely. Also, the hardware platform, number of processors, disk subsystem, and amount of RAM will play a significant part in the amount of time required for the conversion. Selecting "data validation" during setup will increase the amount of time needed to perform the upgrade by a factor of two. This table shows some typical times required for the upgrade process.

Database size | Estimated time required to convert
400 MB | Less than 20 minutes
1 GB | Less than 1 hour
10 GB | Less than 4 hours
50 GB | Less than 12 hours
100 GB | Less than 24 hours

How much additional disk space does SQL Server 7.0 use than SQL Server 6.5?

Answer:

With one computer, converting from SQL Server 6.x to SQL Server 7.0 requires about 1.5 times the space that the SQL Server 6.x data currently uses. In most cases, the actual space used will be less than that currently used by the SQL Server 6.x data. If you do not have a sufficient amount of disk space, you may want to consider using either the one-computer tape conversion or the two-computer conversion method:

One-Computer Tape Conversion Method

With this method, the SQL Server 6.x data files are backed up to a SQL dump. Optionally, you can specify that a file backup of the physical files also be performed. After this step is accomplished, the data devices are deleted from the drives and the SQL dump is used during the loading of the new SQL Server 7.0 databases. If you have any difficulties, you can reinstall SQL Server 6.x and restore the original data files from the physical backup of the data files.

Two-Computer Conversion Method

With this method, the new computer will require roughly 1.5 times as much disk space as the SQL Server 6.x databases currently use. The final amount of space used may be less, depending on the data types used and the actual amount of free space in the SQL Server 6.x databases. When converting a database, SQL Server 7.0 suggests a data file size and uses the previous log file size for the first log file. Note that this behavior is different when creating a new database in SQL Server 7.0. In this case, SQL Server 7.0 creates the new database with a default size of 2 MB.

Can users be connected to the SQL Server 6.x computer while the conversion process is running?

Answer:

No. During the upgrade process, the SQL Server 6.x computer is stopped and started while objects are scripted and data is extracted. Also, when the data transfer is started, only SQL Server 7.0 is running, and you cannot access SQL Server 6.x.

How should I configure my server before performing the upgrade?

Answer:

If you will be upgrading your existing SQL Server 6.x to a new computer running SQL Server 7.0, both computers should be configured to use a domain user name and password for the MSSQLServer service. The domain user account should also belong to the Administrators group on both computers. A local system account is sufficient for a one-computer upgrade. If you are upgrading across different domains, you must have a trust relationship set up between the domains before starting the upgrade.

Note If you use the local system account with the one-computer upgrade process and you also use a local account, you will be unable to upgrade integrated logins (because SETUSER will fail). Therefore, you should only use the local system account with a one-computer upgrade process if you are using standard security, not integrated security.

After upgrading SQL Server version 6.x databases to SQL Server 7.0 using the automatic configuration option, the resulting SQL Server 7.0 databases are smaller than their SQL Server 6.x counterparts. Does this mean that there was a problem with the upgrade?

Answer:

If the Use the default configuration option is selected, the SQL Server Upgrade Wizard automatically configures a new database size from the actual volume of data in the SQL Server 6.5 database. To be sure that the SQL Server 6.x databases are upgraded correctly, compare the SQL Server 7.0 databases to their SQL Server 6.x counterparts, beginning with row counts and object names.

To determine how much data is in the database, select the Edit Default Configuration option.

Can I load my SQL dumps onto a new computer and upgrade the new computer to SQL Server 7.0?

Answer:

Yes. However, be sure to also copy the master database to the new computer. If databases from a different computer are loaded onto a new computer, the SQL Server login IDs are not present in the master database. The upgrade fails to create objects for users who do not have login IDs in the master database. Also, if integrated security is used and no local group exists for the users of a database that is loaded into SQL Server, logins may fail.

Can I consolidate databases from two or more servers running SQL Server 6.x onto one server running SQL Server 7.0?

Answer:

No. The upgrade process keeps track of the server being upgraded and allows databases from only one server running SQL Server 6.x to be upgraded. Consolidating databases from different servers may cause problems in user login IDs, user accounts, and object permissions. If you want to consolidate several databases from different servers running SQL Server 6.x, move all databases to be consolidated to one SQL Server 6.x server and verify that your applications work correctly before upgrading to SQL Server 7.0.

Do I need to run the database consistency checker (DBCC) statements on the server before upgrading my databases?

Answer:

Although it is not necessary to run DBCC statements before upgrading, doing so is recommended. Depending on the extent of any logical inconsistencies existing in the database, the upgrade process may not complete successfully. In a situation in which there may not be sufficient time in a maintenance timeframe to complete the upgrade and DBCC checks, consider running the DBCC checks on a backup or secondary server, using dumps of the databases to be upgraded.

Can I convert only one or several of my databases to SQL Server 7.0?

Answer:

Yes. You can convert one, some, or all of your SQL Server 6.x databases to SQL Server 7.0. You can even convert individual databases as a test or as practice before upgrading all of the databases on the server. However, it is recommended that you convert all production databases on a server at the same time; this will minimize potential problems. If you want to convert only a subset of your existing SQL Server 6.x databases, you should convert them all at the same time.

If you are not planning to convert all of your SQL Server 6.x databases at the same time, the order in which you convert the databases is important. Objects that rely on the contents of other databases (such as views, stored procedures, and triggers) cannot be created if the database they depend on does not exist.

For example, if the SQL Server 6.x model database has been modified to include additional objects, it should be converted either at the same time as all of the other SQL Server 6.x databases, or last. Any objects that were created in SQL Server 6.x databases as a result of nondefault objects being added into the SQL Server 6.x model database will be scripted during the upgrade process.

When other SQL Server 6.x databases are upgraded after the model database has already been converted, they will contain nondefault objects based on the SQL Server 6.x model database. Because the objects will be added to the new SQL Server 7.0 databases when they are initially created by the SQL Server 7.0 model database, the creation script will fail to create any objects that already exist in the database. Therefore, by converting the model database last, any changes in the database structure will be applied only to new SQL Server 7.0 databases. All of the nondefault objects in the SQL Server 6.x converted databases will have been created by scripts during the conversion process of those databases.

Related Topics

Completing the SQL Server Upgrade Wizard

Troubleshooting the SQL Server Upgrade Wizard

Upgrade Log Files


Upgrading Within Releases of SQL Server 7.0 FAQ

Can I upgrade the evaluation version of SQL Server 7.0 to the retail version?

Answer:

Yes. To continue using Microsoft® SQL Server™ 7.0 after the 120-day evaluation period has expired, you must purchase and install the fully licensed version. For more information, see the Knowledge Base article, INF: How to Upgrade From SQL Server 7.0 Evaluation Edition to Retail Version.

Can I upgrade from SQL Server 7.0 Beta 3 to the released version of SQL Server 7.0?

Answer:

If you currently have the Beta 3 version of Microsoft SQL Server 7.0 on your computer, you can upgrade the installation to SQL Server 7.0. You do not have to uninstall the beta version and then install a clean copy of SQL Server 7.0.

The benefit of upgrading from the Beta 3 version is that SQL Server retains the system and user databases, saving the time involved in re-creating system settings and reloading data.

What do I do if my SQL Server 7.0 Beta 3 license expires before I have an opportunity to upgrade to the release version of SQL Server 7.0?

Answer:

If your SQL Server 7.0 Beta 3 installation has expired before you have upgraded to the release version of SQL Server 7.0, you should:
  1. Back up all the .mdf, .ndf, and .ldf files from the Mssql\Data directory of your Beta 3 installation by copying them to another directory or other safe location.

  2. Use the Add/Remove Programs utility in Control Panel to remove your Beta 3 installation.

  3. Install the release version of SQL Server 7.0.

  4. Use the sp_attach_db stored procedure to reattach your databases.

For more information about sp_attach_db, see the SQL Server Books Online for SQL Server 7.0.

Related Knowledge Base Articles

Q237303 INF: How to Upgrade From SQL Server 7.0 Evaluation Edition to Retail Version


Upgrade Error Messages FAQ

The conversion process seems to stop responding and fails. Why?

Answer:

If applications or services have open ODBC connections to the Microsoft® SQL Server™ 6.x server during the conversion process, they may not allow the SQL Server to shut down completely. The conversion process will not proceed to the next step if it does not receive verification that the SQL Server 6.x server has been completely stopped. The conversion process will appear to stop responding and eventually fail in this situation. To resolve this situation, close all applications and services that may have ODBC connections or may be using SQL Server before performing the upgrade. If SQL Server Profiler or SQL Trace is connected to the SQL Server 6.x server, you will see a similar problem in that, although the server does not actually stop responding, tasks that once happened quickly use so much CPU time that they become exponentially slower.

I'm getting "@@servername not valid" errors during conversion. Why?

Answer:

This error message can occur if the SQL Server 6.x server you are upgrading has not been named. To resolve this problem, perform these steps:
  1. In isql or ISQL/w, use the SELECT @@SERVERNAME statement to make sure the server has a name.

  2. If the server does not have a name, use the following stored procedure to add a name:
    sp_addserver <server_name>, local

What causes the "Cannot open default database" and "Error querying @@servername" errors?

Answer:

If the default database for the system administrator (sa) has not recovered yet, or if it is marked as suspect, the SQL Server Upgrade Wizard produces either of these error messages. Resolve the problem with the default database and rerun the SQL Server Upgrade Wizard.

Where can I look to see a record of any errors that I may have encountered during the conversion process?

Answer:

During the conversion process, detailed logs are generated and stored in the SQL directory. If any errors occur during the conversion process, you will see a dialog box at the end of the process. This dialog box displays the contents of the error files. This output file is located in the MSSQL\Upgrade\servername_date_time directory. Each database has its own subdirectory with output and error files that were generated during the conversion process.

Some of my stored procedures either did not convert properly or did not convert at all. What went wrong?

Answer:

The following are some possible reasons why your stored procedures may not have been converted correctly:
  • The text for the stored procedure must start with CREATE PROCEDURE. If your procedure begins with BEGIN TRANSACTION, followed by the CREATE PROCEDURE text, the stored procedure will not be created.

  • Stored procedures based on system tables will not be created because of changes in the column names and a change in the structure of the system catalogs.

  • If the name of a stored procedure was changed by using the sp_rename stored procedure, the original name for the stored procedure in the syscomments system table was not changed. In this case, the stored procedure will be created with the original name. Then, if you have another stored procedure with the same name or one that was created before the original, the second stored procedure will not be created because an object by that name will already exist.

  • Stored procedures that are created by other stored procedures will not be created because they have no entry in the syscomments table.

Related Topics

Error Message Formats

Error Message Numbers and Descriptions

Error Message Severity Levels

Error Messages

Reporting Errors to Your Primary Support Provider


Using Both SQL Server 6.x and SQL Server 7.0 FAQ

Can I manage SQL Server 6.5 databases using the Enterprise Manager in SQL Server 7.0?

Answer:

Yes, you can if you had previously installed the Microsoft® SQL Server™ 6.5 utilities on your client computer and upgraded it to SQL Server 7.0. When you attempt to connect to SQL Server 6.5 using the SQL Server Enterprise Manager in SQL Server 7.0, it opens SQL Enterprise Manager in SQL Server 6.5.

Can I install SQL Server 7.0 on a server that already has SQL Server 6.x installed?

Answer:

Yes, but you cannot run both SQL Server 6.x and SQL Server 7.0 at the same time. SQL Server Setup adds a version switch, which you can use to switch between SQL Server 6.x and SQL Server 7.0.

Caution If you are installing SQL Server 7.0 alongside SQL Server 6.x on the same computer, do not install SQL Server 7.0 in the same directory as SQL Server 6.x.

Can I run SQL Server 6.x and SQL Server 7.0 at the same time on a single computer?

Answer:

No. You can run only one of these versions of SQL Server at any given time. Both versions share common Microsoft Windows NT® resources and registry information, and only one version can be started at a time. However, you can switch between SQL Server 7.0 and SQL Server 6.x by using the vswitch utility. The vswitch utility is intended for the conversion process and testing; it is not meant for hosting two versions of SQL Server on one computer in a production environment.

If you have converted your databases to SQL Server 7.0 on the same computer as the existing SQL Server 6.x installation, be aware that these two sets of databases are independent; they are not synchronized, and any modifications to the SQL Server 6.x data while SQL Server 6.x is running will not be reflected in the SQL Server 7.0 databases. Conversely, any changes to the SQL Server 7.0 data will not be reflected in the SQL Server 6.x databases.

Caution If you are installing SQL Server 7.0 alongside SQL Server version 6.x on the same computer, do not install SQL Server 7.0 in the same directory as SQL Server 6.x. They must be installed in separate directories.

Why aren't the configuration changes that were made using SQL Server Client Configuration in SQL Server 6.x reflected on the same computer in the SQL Server Client Network Utility with SQL Server 7.0?

Answer:

SQL Server 6.x and SQL Server 7.0 use different sets of registry keys. Registry keys for inactive servers are backed up within the registry. The SQL Server Client Network Utility (SQL Server Client Configuration in SQL Server 6.x) cannot change registry key values for another version.

It is recommended that only one version of SQL Server be installed on each computer. Do not install SQL Server 6.x and SQL Server 7.0 on the same computer. Do not use the vswitch utility to run installations of SQL Server 6.x and SQL Server 7.0 on the same computer. Only use the vswitch utility to change server versions during the conversion process.

Why do the results from SQL Server 7.0 isql utility queries sometimes differ from those of the same queries run from other SQL Server query tools? Why do the results from SQL Server Query Analyzer queries sometimes differ from those of the same queries run from SQL Server 6.5 tools such as ISQL/w?

Answer:

The SQL Server 7.0 isql utility and all of the SQL Server 6.5 utilities use the legacy DB-Library API to communicate with SQL Server. All of the SQL Server 7.0 query tools except isql use either the OLE DB Provider for SQL Server or the SQL Server ODBC driver.

The ODBC specification requires that SQL statements submitted through ODBC comply with behaviors defined in the SQL-92 standard. The OLE DB provider uses a command-language specification that also requires SQL-92 behaviors. To support this, the OLE DB provider and ODBC driver set on a number of server options that enforce the SQL-92 behavior. The DB-Library DLL used by isql and ISQL/w does not set these options to retain compatibility with existing DB-Library applications.

Execute the following statements before running a query in isql or ISQL/w to obtain the same results as are returned by the SQL Server 7.0 query tools:

SET QUOTED_IDENTIFIER ON
SET ANSI_WARNINGS ON
SET ANSI_PADDING ON
SET ANSI_NULLS ON
SET CONCAT_NULL_YIELDS_NULL ON

Do SQL Server 6.5 client utilities work with SQL Server 7.0?

Answer:

All SQL Server 6.5 client utilities work with SQL Server 7.0, except for SQL Server Enterprise Manager, Web Assistant, and SQL Trace. However, SQL Server 6.5 clients do not support the new features introduced in SQL Server 7.0. In addition, the SQL Server 7.0 server must sometimes adjust data that it sends to SQL Server 6.5 clients. For example, SQL Server 6.5 clients do not support Unicode; therefore, SQL Server 7.0 must convert any Unicode data to character data before sending it to the client, possibly losing extended characters. Also, the SQL Server 6.5 clients do not support values in the char, varchar, binary, or varbinary data types that are longer than 255 bytes, hence SQL Server 7.0 must truncate any values longer than 255 before sending the data to the SQL Server 6.5 client. For these reasons, upgrading the SQL Server 6.5 client utilities to the SQL Server 7.0 client utilities is recommended.

I exported my SQL Server 6.x data using the SQL Server 6.x bcp utility. How can I import this data into SQL Server 7.0 using the bcp utility?

Answer:

Use the -6 (or /6) option of the bcp utility to import SQL Server 6.x data into SQL Server 7.0. For more information, see bcp Utility in SQL Server Books Online for SQL Server 7.0.

Can a SQL Server 4.21 installation be converted directly to SQL Server 7.0?

Answer:

No. Because of the many database changes between SQL Server 4.21 and the structure of the SQL Server 6.x databases, the conversion process will not run using SQL Server 4.21 databases. To upgrade a server running SQL Server 4.21 to SQL Server 7.0, you must first upgrade the server to either SQL Server 6.0 or SQL Server 6.5 before converting to SQL Server 7.0. If you are running SQL Server 4.21 and you want to upgrade to SQL Server 7.0 but you do not have SQL Server 6.x, you can obtain a copy of SQL Server 6.5 for the purpose of upgrading to SQL Server 7.0 from the Microsoft Fulfillment Center.

Note Before you convert your installation from SQL Server 4.21 to SQL Server 6.x, be sure to run Chkupg65.exe or Chkupg60.exe, to verify that the structure and contents of your SQL Server 4.21 databases have no conflicts with the new SQL-92 requirements that are implemented in the SQL Server 6.x versions.

Related Topics

Completing the SQL Server Upgrade Wizard

Troubleshooting the SQL Server Upgrade Wizard


Supplemental Information About SQL Server 7.0 from PSS

Product Support provides the following additional information about Microsoft® SQL Server™ 7.0:

  • Distributed Queries: Resolving Common Problems

  • Full-Text Search Overview

  • Replication Overview

  • Data Transformation Services: Tips from PSS

  • Deploying Value Added Business Solutions with SQL Server 7.0 and MSDE 1.0. (link to white paper)

  • Setting Up SQL Server 7.0: Links to New Information

  • Performance Issues Covered in Knowledge Base Articles


Distributed Queries: Resolving Common Problems

Distributed queries in Microsoft® SQL Server™ 7.0 allow you to access data in heterogeneous data sources. This topic provides some syntax examples and resolutions to common problems encountered with distributed queries.

Using Local Variables with OPENQUERY or OPENROWSET

Local variables are not supported in the query portion of the OPENQUERY and OPENROWSET functions. For example, this syntax works with the four-part naming convention:

DECLARE @id char(6)
SELECT @id = 'MC2222'
SELECT * FROM <linked server name>.pubs.dbo.titles
WHERE title_id = @id

However, attempting the same thing with OPENQUERY or OPENROWSET fails:

DECLARE @id char(6)
SELECT @id = 'MC2222'
SELECT * FROM OPENQUERY (<linked server name>, 'SELECT * FROM titles WHERE title_id = @id')

Server: Msg 8180, Level 16, State 1, Line 3
Statement(s) could not be prepared.
Server: Msg 137, Level 15, State 1, Line 3
Must declare the variable '@id'.

To use local variables, you must use the EXEC statement. You can build an entire string with the complete SELECT statement or build it within the EXEC context:

DECLARE @c char (6), @str nvarchar(4000)
SELECT @c = 'MC2222'
SELECT @str = "SELECT * FROM OPENQUERY (<linked server name>, 'SELECT * FROM pubs..titles WHERE title_id = ''" +  @c + "''')"
EXEC (@str)

Or, you can build the string within the EXEC statement itself:

DECLARE @c char (6)
SELECT @c = 'MC2222'
EXEC ("SELECT * FROM OPENQUERY (<linked server name>, 'SELECT * FROM pubs..titles WHERE title_id = ''" +  @c + "''')")

Note Note the use of escape quotation marks in each example.

When building a string to execute, ensure that you do not concatenate local variables that are as large or larger than the string variable you are building.

Performing INSERT, UPDATE and DELETE Statements with OPENQUERY and OPENROWSET Functions.

When you perform data modification using OPENQUERY and OPENROWSET, the function itself simply takes the place of the table name in the query. For example, locally you could run this UPDATE statement:

UPDATE pubs.dbo.titles SET title = 'My new title' WHERE title_id = 'MC2222'

Against a remote server, you simply replace the table name with the OPENQUERY statement:

UPDATE OPENROWSET('SQLOLEDB', '<linked server name>';'<account>';'<password>',  "SELECT * FROM pubs.dbo.titles WHERE title_id = 'MC2222'")
SET title = 'My new title' WHERE title_id = 'MC2222'

Note The WHERE clause is included in the OPENQUERY statement to limit the number of rows returned, and is duplicated in the UPDATE statement. The WHERE clause outside of the OPENQUERY function is not necessary, but adds clarity. The clause inside the OPENROWSET function is important because it helps limit the amount of data returned from the remote server.

Using Integrated Security and Impersonation

When creating a linked server, you can use SQL Server Enterprise Manager (on the Security tab of the Linked Server Properties dialog box) or the sp_addlinkedsrvlogin stored procedure to specify the account that is used to connect to the linked server. If you specify the option They Will Be Impersonated in SQL Server Enterprise Manager, or if you use the @useself parameter with sp_addlinkedsrvlogin, any user that makes a Windows NT Authentication connection to the local server will attempt to make a trusted connection to the linked server. This connection may sometimes fail, returning this message:

Server: Msg 18456, Level 14, State 1, Line 1
Login failed for user '\'.

With Microsoft Windows NT® 4.0, this delegation of credentials ("double hop") is not supported.

For example, if you have servers A and B with SQL Server and client C, and server B is created as a linked server on server A with logins specified to useself using sp_addlinkedsrvlogin, or if you specify the option They Will Be Impersonated using SQL Server Enterprise Manager, these scenarios apply:

  • Clients on server A can connect locally to server A using Windows NT Authentication and can successfully run queries against linked server B under their own Windows NT security account (assuming they have been granted appropriate access). The Windows NT credentials only have to make a "single hop" from server A to server B.

  • Clients on client C can successfully connect to server A using Windows NT Authentication. However, if they try to run queries against linked server B, the queries will fail with Msg 18456. This is considered a "double hop" because the Windows NT credentials from client C are sent to server A initially, and then from server A to server B. This second hop from server A to server B for the remote query is not supported.

To work around this problem, map the clients on server A to a standard security login on server B using sp_addlinkedsrvlogin or by using SQL Server Enterprise Manager (on the Security tab of the Linked Server Properties dialog box).

Related Topics

Help with Distributed Queries


Full-Text Search Overview

by John Kane, MSCE, SQL Support Engineer

Full-Text Search allows word- or phrase-based indexing of character data in Microsoft® SQL Server™ 7.0 tables. Full-Text Search consists of two basic components:

  • Full-text indexing

    Enables the creation and population of the full-text catalogs, which are maintained outside of SQL Server and managed by the Microsoft Search service.

  • Full-text search

    Uses the new Transact-SQL predicates (CONTAINS, CONTAINSTABLE, FREETEXT, and FREETEXTTABLE) to query these populated full-text catalogs.

    Note You can use full-text search and indexing in a clustered environment. However, in case of server failover, the Microsoft Search service does not failover, and full-text search queries will not work.

Full-Text Indexing

When you investigate any full-text indexing (or search) problem, always review the Microsoft Windows NT® application log first. You can view the application log using the Windows NT Event Viewer. All informational and error messages for full-text indexing and full-text search are written to the Windows NT application log.

Review the way SQL Server starts up if your full-text catalogs are not populating or if you encounter a message such as:

Unable to access crawl seed <MSSQL…> in project <SQL…>
Error: 8007052e - Logon failure: unknown user name or bad password.

To confirm how SQL Server is started, double-click Services in Control Panel, and then double-click MSSQLServer service. SQL Server should start up with a valid domain account that is a member of the local computer's Administrator group or System Account (LocalSystem). If this not the case, you must change the startup account using SQL Server Enterprise Manager (on the Security tab on the Properties dialog box).

Full-Text Search

Because SQL Server 7.0 supports databases in 65 compatibility mode, you may encounter Error 195 "CONTAINS is not a recognized name" if the database is in 65 compatibility mode. If you get this error, execute the sp_dbcmptlevel stored procedure to verify that the database is in 65 compatibility mode.

You also may encounter Error 7619 "The query contained only ignored words" when using any of the full-text predicates in a full-text query, such as CONTAINS(pr_info, 'between AND king'). The word "between" is an ignored or noise word and the full-text query parser considers this an error, even with an OR clause. Consider rewriting this query to a "phrase-based" query or removing the noise word.

Full-Text Performance

If you are full-text indexing tables with less than 1 million rows, both full-text indexing and full-text search have acceptable performance, and no special performance tuning is usually required. For tables with greater than 1 million rows, you will need to consider hardware and Windows NT Server tuning and configurations, such as:

  1. Ensure that the Pagefile.sys for Windows NT Server is at least 1.5 to 2.0 times the server's physical RAM.

  2. In SQL Server Enterprise Manager in the Support Services folder, select Full-Text Properties & Performance tab, and slide "System resource usage" bar to the right (dedicated) during full-text indexing processing.
Full-Text Search Support WebCast

For more information about performance tuning for full-text indexing and search, see the Related Topics list, Knowledge Base articles, and the archived version of the WebCast titled "SQL Server 7.0 Full-Text Search and Basic Troubleshooting Methods."

Support WebCasts are live presentations by Microsoft Product Support professionals. For more information about Support Webcasts, and for a list of upcoming live presentations, see the MSDN Online Support Web page at http://support.microsoft.com/servicedesks/msdn. From the MSDN starting page, click Support Highlights & FAQs, select SQL Server, click Go, and then click Support WebCasts.

Related Topics

Full-text Catalogs and Indexes

Full-text Query Architecture

Help with Full-Text Search

Troubleshooting Full-Text Search


Replication Overview

by Tai Yee, Microsoft Certified Database Administrator, PSS Content Developer

When you store copies of the same information at multiple locations, such as a master price list for your products at your corporate headquarters and the same price list data at each regional office, you have a distributed environment. This environment may have been created deliberately or it may have evolved unintentionally. A distributed environment can become more and more difficult to manage as it grows, sites are added, and the information being retained becomes more complex. At some point, you will probably need to find an easier way to manage data in a distributed environment. One way to manage data in a distributed environment is to use Microsoft® SQL Server™ replication. In SQL Server, replication refers to copying data in a database from one database to another.

Types of Replication

There are three types of SQL Server replication: snapshot replication, transactional replication, and merge replication. With snapshot and transactional replication, you can select the immediate-updating Subscribers option. That is, if a Subscriber makes a change to the data, that change is reflected immediately on the Publisher. These changes will also be replicated to any other Subscribers as well. Merge replication allows subscribers at various sites to change data, with updates managed as changes are merged.

Snapshot Replication

This is the simplest form of replication, and it is the easiest to set up and maintain. With snapshot replication, a picture, or snapshot, of the current data of a publication on the publishing server is sent (either at periodic scheduled intervals or on demand) to the subscribing server(s), replacing the data there. However, because the entire publication is sent across the network each time synchronization occurs, this method can place a burden on network resources, especially if the amount of data being published is large. Snapshot replication is a good choice when it is not vital that all Subscribers have the very latest changes to data at the Publisher because you can schedule snapshot replication to occur at nights or on weekends when the network resources are not in high demand.

Transactional Replication

In transactional replication, incremental changes, rather than the entire publication, are replicated from the Publisher to the Subscriber(s). Typically, the replication occurs with a minimal time delay, referred to as minimal data latency. Transactional replication is a good choice when Subscribers must receive data changes as they occur in near real time. However, because the changes are sent almost continually, this replication type requires a stable and constant network connection between the Publisher, Distributor, and Subscriber. Before transactional replication can begin, an initial snapshot is taken of the publication, to synchronize the data between the Publisher and Subscriber.

Merge Replication

In merge replication, Subscribers at various sites can make changes to replicated data. These changes are merged with the original data on the Publisher and with any changes made by other Subscribers. Merge replication does not guarantee transactional consistency, but it does guarantee that the changes from all sites converge to the same results. If there is a conflict between a change made at one or more Subscribers and/or the Publisher, the Merge Agent resolves them, using criteria that you specify. As with transactional replication, an initial snapshot is taken before merge replication begins, to synchronize the data between the Publisher and Subscriber.

Related Web Links

The SQL Server 7.0 Replication Frequently Asked Questions (FAQ) list on the SQL Server Support Highlights FAQ page:

http://support.microsoft.com/support/sql/70faq.asp.

The Replication for SQL Server 7.0 white paper:

http://www.microsoft.com/sql/DeployAdmin/replication.htm.

The article, Microsoft SQL Server 7.0 Replication Made Easy:

http://msdn.microsoft.com/library/backgrnd/html/repl.htm.

The SQL Server 7.0 Replication Troubleshooter:

http://support.microsoft.com/support/tshoot/sql7replication.asp.

The Microsoft Knowledge Base article, Q89937 INF: Getting Started with Microsoft SQL Server Replication:

http://support.microsoft.com/support/kb/articles/Q89/9/37.asp.

Related Topics

Help with Replication

Overview of Replication

Replication FAQ


Data Transformation Services: Tips from PSS

Automating OLAP Processing using DTS

An add-in task for DTS is available that allows processing of OLAP objects from within a DTS package. You can download the add-in from ftp.microsoft.com/bussys/sql/public/DTSTasks.exe.

Simplified Coding of DTS Packages in Visual Basic

Coding the creation and execution of DTS packages in Microsoft® Visual Basic® can be simplified by using the Visual Basic ScriptPkg program. The ScriptPkg program, loads a DTS package stored on Microsoft SQL Server™ and generates the Visual Basic code required to create the package. Using the output from this utility greatly simplifies the task of creating and executing a DTS package from within a Visual Basic program.

The ScriptPkg Visual Basic project is part of the self-extracting executable Dtsdemo.exe located in the \Devtools\Samples\Dts directory on the SQL Server 7.0 CD.

Handling DTS Events in Visual Basic

You can handle DTS package events from within a Visual Basic program that executes the DTS package. For more information, see Knowledge Base Article Q221193 INF: How To Install DTS Event Handlers In Visual Basic.

Modifying Package Connections

A DTS package stores all necessary information for connecting to a data source within the package itself. As a result, changing a DSN on the system will not affect the connection for the package. To change connection information at run-time, you must use a Microsoft ActiveX® script task. For an example of changing connection properties at run-time, see ActiveX Script Tasks in SQL Server Books Online for SQL Server 7.0.

Modifying Steps or Tasks at Execution Time

Making changes to a step or task in a package at execution time should be done from within an ActiveX task. The most difficult part of modifying a step or task is locating it from within another task. This can be done easily by looping through the Task or Step collections in a package to find the object. For information about finding a DTS step or task within an ActiveX task, see Knowledge Base article Q235893 INF: How To Find a Specific Task/Step Inside a DTS Package.

Implementing Looping in DTS

Step(s) in a DTS package can be executed multiple times for a single execution of the DTS package by using an ActiveX task to change the ExecutionStatus property of the step(s) to DTSStepExecStat_Waiting. The DTS engine interprets the ExecutionStatus as a step that has not been run, and executes the step again.

Combining this technique with other ActiveX tasks and global variables to control the looping logic allows a single package to be used for processing multiple input files.

Debugging ActiveX Tasks

Debugging the code in a Microsoft ActiveX task can be accomplished using one of several debugging tools, including Microsoft Visual Studio® and the Microsoft Active Script Debugger. To halt execution within the ActiveX task and start the debugger, place a STOP command at the point in the code where you want to begin debugging. Execute the package and select Yes when asked if you would like to debug the application.

Using Multiple Connections to Increase Parallel Execution

By default, a DTS package attempts to execute up to four tasks in parallel. However, a single connection can participate in only one step at a time, no matter how many icons are present in the package for that connection. When you create multiple connections and use different connections for tasks, the tasks can be executed in parallel.

Using Package Error and Exception Files

Two of the most useful and often overlooked tools for troubleshooting DTS package problems are the package error file and data pump exception files. The package error file contains information about the success or failure of each step in a package and can be very helpful in determining at what point a package failed. Each time the package is executed, the information for the new execution is appended to the error file.

The data pump exception file contains information about the records that failed to be transferred successfully. Like the package error file, output is added to this file for each execution. The data pump exception file can be very helpful in troubleshooting why a particular record did not transfer. Both files can be created and named using the Enterprise Manager.

To create the package error and data pump exception files

  1. In the SQL Server Enterprise Manager, double-click Data Transformation Services, click Local Packages or Repository Packages, and then double-click the saved package.

  2. On the Package menu, click Properties to open the DTS Package Properties dialog box.

  3. Under Error handling, enter a location and name for the package error file, and then click OK.

  4. Double-click the transform arrow to open the Data Transformation Properties dialog box.

  5. Click the Advanced tab. Under Error handling, enter a location and name for the data pump exception file, and then click OK.

  6. On the Package menu, click Save, and then close the window.
Scheduled Packages

Frequently, a package that can be run from the DTS Designer, SQL Server Enterprise Manager, or the command line using dtsrun fails to execute when scheduled as a Microsoft® SQL Server™ job. This generally indicates a permissions or network access problem.

If a SQL Server job is owned by sa or a member of the sysadmin fixed server role, the package executes under the security context of the account used by the SQLServerAgent service. If not, the job executes under the local SQLAgentCmdExec account.

The local system and SQLAgentCmdExec accounts have no privileges to access files on network resources. If the package is accessing files on the network, make sure that the SQLServerAgent service is running under a Microsoft Windows NT® domain account and has access to the share.

Because a scheduled job does not run interactively, any mapped drives that were used to access data files do not exist when the job is executed. To avoid this, a package should always use the full UNC path for connections that access files on a shared directory on the network.

Using Online Resources

In addition to the information available in Microsoft SQL Server Books Online for SQL Server 7.0, the Microsoft Knowledge Base is updated frequently with new information about Microsoft products. To help isolate and correct DTS package problems, an online troubleshooter is also available at the Microsoft Product Support Web site; for information, see the Help with Data Transformation Services.

Related Knowledge Base Articles

Q235893 INF: How To Find a Specific Task/Step Inside a DTS Package

Q221193 INF: How To Install DTS Event Handlers In Visual Basic


Deploying Value Added Business Solutions with SQL Server 7.0 and MSDE 1.0.

A new white paper by L. Roger Doherty provides thorough coverage of programmatically deploying Microsoft® SQL Server™ 7.0 and MSDE 1.0 (Microsoft Data Engine).

Excerpt from the introduction to the document:

This paper is designed to serve as a comprehensive guide for developers who wish to deploy value added business solutions that leverage Microsoft SQL Server 7.0 or Microsoft MSDE 1.0 database services. It addresses design guidelines and technical strategies for automating the installation, configuration and management of custom SQL Server or MSDE database applications.

Excerpt from the overview for developers:

SQL Server version 7.0 offers distinct advantages to developers of custom value-added business solutions. This section introduces SQL Server 7.0 to developers who are unfamiliar with client/server database application development or who need a quick refresher on SQL Server 7.0 and MSDE 1.0. By reading this section, a developer or architect can learn how to position the benefits of SQL Server as an integrated component of a value-added business solution, and educate others on the full breadth of capabilities available from a custom database application that leverages SQL Server 7.0 or MSDE 1.0.

The white paper is available for MSDN subscribers as part of the SQL Server and MSDE Development Tool Kit. In addition to comprehensive white papers, the tool kit provides sample applications and source code so developers can learn how to package and deploy either SQL Server 7.0 or MSDE 1.0 along with a custom developed application in a single step.

To view Deploying Value Added Business Solutions with SQL Server 7.0 and MSDE 1.0, see the MSDN Online Support Web page at http://support.microsoft.com/servicedesks/msdn/.


Setting Up SQL Server 7.0: Links to New Information

This topic provides links to additional information about setting up Microsoft® SQL Server™ 7.0.

Before Installing

Before you install Microsoft SQL Server 7.0, it is recommended that you read the Microsoft SQL Server 7.0 Preparedness Review on the PSS Web site at http://support.microsoft.com/support/sql/content/70papers/sql7prep.asp. This document provides information relevant to installing and/or upgrading to SQL Server 7.0, such as:

  • Licensing

  • Hardware requirements

  • Software requirements

  • Product features

  • Planning recommendations

For general setup information, see the white paper Installing Microsoft SQL Server 7.0 at http://support.microsoft.com/support/sql/content/70papers/setup.asp.

For thorough coverage of programmatically deploying SQL Server 7.0, see Deploying Value Added Business Solutions with SQL Server 7.0 and MSDE 1.0 (Web White Paper).

Unattended Installation

Information about unattended installation and other programmatic scripting of SQL Server 7.0 installation can be found in these Knowledge Base articles:

Q233312 - INF: Customizing SQL/MSDE Unattended Installation Files

Q231735 - INF: SQL 7.0 Remote Unattended Install

Q233337 - INF: How to Determine When Unattended SQL 7.0/MSDE 1.0 Setup is Complete

Q238232 - PRB: MSDE Unattended Installation Needs Full Path Name of the .iss File

Note When you run an unattended installation from the command line (for example: setupsql.exe -f1 "C:\path\unattend.iss" –s –sms), the path to the .iss file must be in quotation marks.

Installing Using File Images (Ghosting)

Installing by using file images (Ghosting) is not currently supported on Microsoft SQL Server 7.0. For more information, see Q229875 - FIX: Unable to Perform Automated Installation of SQL 7.0 Using File Images.

Installing SQL Server 7.0 on a Windows NT Enterprise Cluster (MSCS)

A white paper by David A. Whitney provides detailed information about how to install Microsoft® SQL Server™ 7.0 on Microsoft Cluster Server (MSCS). To view this document, see How to Install SQL Server 7.0, Enterprise Edition on Microsoft Cluster Server: Step by Step Instructions, at http://support.microsoft.com/support/sql/content/70papers/70clstr.asp.

This comprehensive document includes:

  • Step by step procedures

  • Recommended reading

  • Software required and the order of installation

  • Installing SQL Server 7.0, Enterprise Edition on an MSCS Cluster

  • Setup of the SQL Cluster Service

  • Troubleshooting

  • Detailed appendixes
Installing Specific SQL Server 7.0 Components

For information about installing specific SQL Server 7.0 components, see:

Q188883 - INF: How to Install Only the SQL Server Books Online

How To Install SQL Server 7.0 Client Utilities White Paper

Related Topics

Creating a Setup Initialization File

Failover Clustering FAQ

Help with Clustering

Help with Setup

Setup and Installation FAQ

Unattended Installation

Viewing Online Troubleshooters and Other PSS Web-based Information


Performance Issues Covered in Knowledge Base Articles

Troubleshooting performance issues involves a series of steps to isolate and determine the cause of an application slowdown. Possible causes include blocking, system resource issues, or a particular set of queries or stored procedures with long execution times. This Knowledge Base article guides you through determining the source of a performance issue:

Q224587 - INF: Troubleshooting Application Performance with SQL Server

After you have determined the source of a performance problem, the following Knowledge Base articles can help you resolve the issue.

  • If the performance problem is due to a blocking issue, see Q244453 - INF: Understanding and Resolving SQL Server 7.0 Blocking Problems.

  • If the performance problem is due to a particular query or stored procedure with long execution times, see Q243589 - INF: Troubleshooting Slow-running Queries.

  • If the performance problem is due to system resource contention while compiling query plans for ad hoc queries or recompilation of stored procedure plans, see these articles:

    Q243588 - INF: Troubleshooting Performance of Ad-Hoc Queries

    Q243586 - INF: Troubleshooting Stored Procedure Recompilation

Note This information is also available online in the SQL Server 7.0 Performance Troubleshooter. For information about how to access online troubleshooters, see Viewing Online Troubleshooters and Other PSS Web-based Information.

Related Topics

Help with Performance


Reporting Errors to Your Primary Support Provider

If you are unable to resolve a problem, contact your primary support provider for assistance. Anytime you receive a server internal error (for example, assertion or access violation (AV)), contact your primary support provider. If you experience an operating-system or I/O error, it is most likely a hardware problem. Correct the hardware problem and restore your database. When reporting an error to your primary support provider, be sure to provide the Blackbox.trc, sqldiag.trc, and Sqldiag.txt files.

For more information about resolving a 9002 or 1105 space-related error, see Troubleshooting Recovery, Error 9002, and Error 1105.

The xp_trace_setqueryhistory system stored procedure starts a trace consisting of the last 100 queries, including any server exceptions. Trace data is appended to the file named Blackbox.trc either when a high priority server exception occurs or when the sqldiag utility (located in \Mssql7\Binn) is executed. When sqldiag is executed, the last 100 queries, including any server exceptions, are written to Sqldiag.trc.

The sqldiag utility also collects information about server version and configuration, .dll file version, error logs, extended stored procedures, operating system, computer version, configuration data, and additional data, all of which is put into Sqldiag.txt.

For example, the environment in which the error occurred includes this information:

  • Microsoft® SQL Server™ version number (as reported to the error log or returned by SELECT @@VERSION). The first message written to the error log provides the SQL Server version number.

  • DB-Library API version number (as reported by the SQL Server Client Network Utility), ODBC driver version (as reported by ODBC Driver Setup), or OLE DB provider information.

  • Application version number (for example, SQL Server Enterprise Manager or osql.exe).

  • Operating-system version number.

  • Hardware platform.

  • Production or development environment.

This additional information is also helpful in troubleshooting a problem:

  • The message number, message state, and complete error message text.

  • Any variables (numbers, database object types, or database object names) included in the error message.

  • The context in which the message was generated (what statement was running at the time).

  • The number of users who were logged in to SQL Server when the error occurred.

  • The frequency with which the error occurs.

  • If you are using SQL Server Query Analyzer and you do not see more than 255 characters in the results pane, click Query, and then click Current Connection Options. Click the Advanced tab, and then increase the value for Maximum Characters Per Column.

In addition, review the error logs and, if running Microsoft Windows NT®, review the Windows NT application log and the Sqlstp.log file, located in the \Windows directory. You may also want to use SQL Server Profiler to monitor events.

To help resolve your problem quickly, you may be asked to send your Sqldiag.txt and error log in e-mail to your primary support provider.

When providing this information, provide the entire error log, including all messages displayed from startup to before or after the error occurred. Be sure to send all information beginning with the time of startup and ending with the error message in question.

Although most startup messages are identical each time you start SQL Server, additional messages sometimes appear during startup, which can provide clues for solving problems that occur during or after startup. If additional messages appear during startup, write down these error messages to assist your support provider in diagnosing and resolving the problem.

Related Topics

Monitoring with SQL Server Profiler

sqldiag Utility

xp_trace_setqueryhistory


Reproducing Problems

In general, the time it takes for your primary support provider to resolve a problem is reduced if you generate a reproducible test case demonstrating the error. These test cases can range from a single query that is not acting as expected to a relatively complex code fragment that encounters a serious problem. A quick resolution is more likely when the test case is simple.

Important Providing a test case improves the chances of a quick resolution to the problem. If a problem cannot be reproduced, it is usually impossible to solve.

Whenever possible, create the test case using the pubs or Northwind sample databases. In many cases, creating a test case can save you from having to send large amounts of data to your primary support provider.

To reproduce and diagnose problems, SQL Server Profiler may be used. SQL Server Profiler captures information about events and, if necessary, replays these events. Capturing and replaying events can be instrumental in reproducing and diagnosing problems.

Related Topics

Monitoring with SQL Server Profiler

Northwind Sample Database

pubs Sample Database


Isolating Connection Problems

Note For immediate help in diagnosing your connection problems, see the new online setup troubleshooter on the Product Support Web site. For more information, see Help with Connectivity.

When a DB-Library application has problems connecting to Microsoft® SQL Server™, there might be a problem with SQL Server, with the network, or with both. Regardless of the network you are running on, there are several items that you can check to isolate the problem. Check that:

  • For servers running Microsoft Windows NT®, the local connection to SQL Server over Named Pipes is available. You can test a local Named Pipes connection by using osql with no servername argument. If you cannot make a local connection using Named Pipes, either you are using an invalid login or there is a problem with SQL Server.

    For servers running Microsoft Windows® 95 or Windows 98, the local connection to SQL Server uses the Shared Memory Net-Library.

  • The network components match the requirements specified in Network Protocols.

  • The default client Net-Library is appropriate for your network. You can determine and, if necessary, change the default client Net-Library by using SQL Server Client Network Utility in the Microsoft SQL Server program group.

  • The network connection information on the server is appropriate for your network (if you are running SQL Server and listening on other interprocess communication (IPC) mechanisms in addition to Named Pipes). You can determine and, if necessary, change the network SQL Server is listening on using SQL Server Server Network Utility in the Microsoft SQL Server program group.

  • The network connection between the client workstation and the server is established. If you test the network connection and determine that it is not open, check that:
    • The hardware connection is not disabled due to loose connectors or plugs.

    • The network software is installed and running on both the client workstation and the server.

Related Topics

Client Network Utility

Network Protocols

Server Network Utility


Orphaned Sessions

A client may have its connection abruptly severed from the server such that the client process is unable to tell the network to close the connection properly. This may occur for many reasons, including power failures on the client. Microsoft® SQL Server™ does not proactively probe the status of a client connection. Instead, it relies on Microsoft Windows NT® to notify it when a connection needs to be terminated or closed. Windows NT monitors connections and continues to report them as active to SQL Server for the duration of the KeepAliveTime for TCP/IP or SessionKeepAlive for NetBios, which affects Named Pipes clients. SQL Server continues to keep locks owned by the client active until they are killed, or until the connection is terminated or closed by Windows NT.

What is an orphaned session?

An orphaned session is a session that remains open on the server side after the client has disconnected.

Do not confuse orphaned sessions with orphaned users. Orphaned users are created when a database is backed up and restored to another system that does not have a corresponding user account configured. For more information about orphaned users, see Troubleshooting Orphaned Users.

When do orphaned sessions occur?

Orphaned sessions occur when the client is unable to free network connections it is holding when it terminates.

If the client terminates cleanly, Windows NT closes the connection and notifies SQL Server. If SQL Server is processing a client command, it will detect the closed connection when it ends the session. Client applications that crash or have their processes killed (for example, from Task Manager) are cleaned up immediately by Windows NT, rarely resulting in an orphaned session.

One common cause of orphaned sessions arises when a client computer loses power unexpectedly, or is powered off without performing a proper shutdown. Orphaned sessions can also occur due to a "hung" application that never completely terminates, resulting in a dead connection. Windows NT does not know that the connection is dead and continues to report the action as active to SQL Server. SQL Server, in turn, keeps the session open and continues to wait for a command from the client.

What problems can orphaned sessions cause?

Open sessions take up one of the SQL Server network connections. The maximum number of connections is limited by the number of server CALLs, therefore, orphaned sessions may prevent other clients from connecting.

Typically, a more important issue is that open sessions use server resources, and may have open cursors, temporary tables, or locks. These locks may block other connections from performing useful work, and can sometimes be the result of a major "pile up" of locks. In severe cases, it can appear that SQL Server has stopped working.

How can I tell if an orphaned session exists and what problems it might be causing?

The sysprocesses table (or stored procedures, such as sp_who) reports information on existing server sessions. Possible orphaned sessions can be identified if the status of a process is "awaiting command" and the interval of time found by subtracting last_batch from GETDATE() is longer than usual for the process. If the session host name is known to be down, it is orphaned.

How do I resolve orphaned sessions?

Windows NT periodically checks inactive sessions to ensure they are active. If a session does not respond, it is closed and SQL Server is notified. The frequency of the checking depends on the network protocol and registry settings. However, by default, Windows NT only performs a check every one or two hours, depending on the protocol used. These configuration settings can be changed in the registry.

To close an orphaned SQL Server session, use the KILL statement. All resources held by the session are then released.

If orphaned sessions become a problem, registry settings can be changed on Windows NT to increase the frequency with which clients are checked to verify they are active. Changing these settings affects other application connections. The following points should be considered before making any changes.

Warning Do not change these settings on computers running Microsoft Windows® 95 or Windows 98.

  • Consider the effect changing these settings may have on other applications on your system, in particular, applications with Internet connectivity, such as Microsoft Internet Information Services (IIS) or Microsoft Internet Explorer. In addition, consider the affects of using connections that are charged on a per-packet basis.

    Caution Editing the registry is not recommended; inappropriate or incorrect changes can cause serious configuration problems for your system. Only experienced users should use the Registry Editor. For more information, see your Windows NT documentation.

The registry entries can be altered from HKEY_LOCAL_MACHINE by double-clicking SYSTEM, expanding CurrentControlSet, and then clicking Services.

KeepAliveTime for TCP/IP

Key: Tcpip\Parameters

Value Type: REG_DWORD - Time in milliseconds

Valid Range: 1 - 0xFFFFFFFF

Default: 7,200,000 (two hours)

Description: The parameter controls how often TCP attempts to verify that an idle connection is still intact by sending a keep alive packet. If the remote system is still reachable and functioning, it will acknowledge the keep alive transmission. Keep alive packets are not sent by default; this feature may be enabled on a connection by an application.

SessionKeepAlive for Named Pipes

Key: Netbt\Parameters

Value Type: REG_DWORD - Time in milliseconds

Valid Range: 60,000 - 0xFFFFFFFF

Default: 3,600,000 (1 hour)

Description: This value determines the time interval between keep alive transmissions on a session. Setting the value to 0xFFFFFFF disables keep alives.

  • Do not increase the ping frequency to less than 1 minute, as network I/O and CPU usage for pings may become excessive.


Named Pipes Client Connections

The following procedure describes how to test a network connection when using Named Pipes as the IPC mechanism.

To test a Named Pipes connection

  • At the operating-system command prompt on the client workstation, type:

    net view \\servername

When using net view, servername is the name of the server to which you want to connect.

For example, to check the connection between a Named Pipes client and a server named \\SEATTLE1, type the following on the client:

net view \\SEATTLE1

If the connection is open, the output looks something like this:

Shared resources at \\SEATTLE1

SQL Server

Sharename      Type            Used as  Comment

----------------------------------------------------

PUBLIC         Disk                     Public Files

The command completed successfully.

To verify connection to a server's named pipe

  • From a command prompt, type:

    net use \\servername\IPC$

When using net use, servername is the server to which you want to connect.

For example:

net use \\SEATTLE1\IPC$

The command completed successfully

If the connection between the client workstation and the server is open but you still cannot connect to Microsoft® SQL Server™, test the network and local named pipes using the makepipe and readpipe utilities. These utilities are included with SQL Server to help test the integrity of network named pipes.

The makepipe and readpipe utilities are installed during installation of both the client and server components. There are different versions of these utilities for the different operating systems on which they run: makepipe runs on Microsoft Windows NT®; readpipe runs on Windows NT, Microsoft Windows®, and MS-DOS®. Be sure to use the correct version for the operating system that you are testing. (The version that runs on Windows is named readpipe. If the SQL Server tools are installed, readpipe is located in the \Msqql7\Binn directory; no icon is created for it.)

To test the integrity of the network named pipe services

  1. At the operating-system command prompt on the server, type:

    makepipe

    The makepipe utility returns the following information:

    Making PIPE:\pipe\abc
read to write delay (seconds):0
Waiting for Client to Connect...

    SQL Server is waiting for a client to connect.

  2. At the operating-system command prompt on the client workstation, type:

    readpipe /S server_name /D string

    When using readpipe, server_name is the network server name of the SQL Server on which makepipe was started and string is a test character string. If the string contains spaces, it must be enclosed in double quotation marks. There are no spaces between /S and the server name, and no spaces between /D and the string.

    For example, to connect to a SQL Server installation named myserver, type one of the following:

    readpipe /Smyserver /Dhello

    readpipe /Smyserver /D"hello there"

    readpipe /Smyserver /D'hello there'

    The strings specified in the first two readpipe statements are treated identically.

    If a network named pipe connection can be established, the client workstation returns the following information to each of the commands above, respectively:

    SvrName:\\myserver
PIPE   :\\myserver\pipe\abc
DATA   :hello
Data Sent: 1 : hello
Data Read: 1 : hello

SvrName:\\myserver
PIPE   :\\myserver\pipe\abc
DATA   :hello there
Data Sent: 1 :hello there
Data Read: 1 :hello there

SvrName:\\myserver
PIPE   :\\myserver\pipe\abc
DATA   :hello
Data Sent: 1 : 'hello
Data Read: 1 : 'hello

    If a network named pipe connection can be established, the makepipe utility returns information similar to this:

    Waiting for Client to Connect...
Waiting for client to send...  1

Data Read:
hello

Waiting for client to send...  2

Pipe closed

Waiting for Client to Connect...
Waiting for client to send...  1

Data Read:
hello there

Waiting for client to send...  2

Pipe closed

Waiting for Client to Connect...
Waiting for client to send...  1

Data Read:
'hello

Waiting for client to send...  2
Pipe closed

Waiting for Client to Connect...

    At this point, SQL Server is waiting for a client to connect. The readpipe utility can be run from other workstations.

  3. When testing is complete, go to the server on which the makepipe utility is running and press either CTRL+BREAK or CTRL+C.

If the results are different from those in Step 2, network named pipe services are not available. If you are using Named Pipes as the IPC mechanism, clients cannot connect to SQL Server until a named pipe is available. These utilities attempt to open and use a named pipe; they do not stress the named pipe connection.

Related Topics

Configuring Client Network Connections

makepipe Utility

readpipe Utility


TCP/IP Sockets Client Connections

The following procedure describes how to test a network connection when using TCP/IP Sockets as the IPC mechanism.

To test a TCP/IP Sockets connection

  • At the operating-system command prompt on the client workstation, type:

    ping {ip_address | server_name}

When using ping, ip_address is the TCP/IP address of the server to which you want to connect, and server_name is the name of the server to which you want to connect.

For example, to check the connection between a TCP/IP Sockets client workstation and a server at the TCP/IP address 11.1.4.70, type the following on the client workstation:

ping 11.1.4.70

If the connection is open, the output looks something like this:

[1] echo received from 11.1.4.70 with roundtrip < 50 sec

This example checks the connection between a TCP/IP Sockets client and a server named SEATTLE1:

ping SEATTLE1

If the connection is open, the output looks something like this:

[1] echo received from SEATTLE1 with roundtrip < 50 sec

Related Topics

Configuring Client Network Connections


Troubleshooting SQL Server Setup

Note For immediate help in diagnosing your setup problems, see the new online setup troubleshooter on the Product Support Web site. For more information, see Help with Setup.

SQL Server Setup is designed to be as problem-free as possible; however, there may be situations that will interfere with the installation of Microsoft® SQL Server™. The most common errors are simple to diagnose and resolve. The resolution may involve freeing up disk space, shutting down other applications, or restarting the computer to unlock shared files.

To avoid problems, make sure you complete all of the steps provided the Before Installing: Checklist topic in SQL Server Books Online for SQL Server 7.0.

If the installation fails, the Setup program might remove all installed components.

Before running the Setup program or installing additional SQL Server components, be sure to:

  • Shut down all services.

    Use Services in Control Panel to shut down the MSSQLServer and SQLServerAgent services. Shut down the MSSearch service if you installed Full-text Search. Shut down the MSDTC service if you installed MS DTC.

  • Be sure the SQL Server Service Manager icon in the taskbar is closed.

    Any attempt to run SQL Server Setup with the SQL Server Service Manager icon present (or any services still running) may cause Setup to fail.

  • Remove the read-only attribute for all ODBC* files. On computers running Microsoft Windows NT® these files are located in the \System32 directory. On computers running Microsoft Windows® 95 or Windows 98, these files are located in the system directory.

    If you cannot remove the read-only attribute on the ODBC* files, SQL Server provides a dialog box that allows you to retry the updating of the ODBC* files.

  • Understand that servers running Windows NT require Named Pipes. Cleaning named pipes during SQL Server installation does not prevent installation of named pipes. Because servers running Windows NT require named pipes, there is no way to uninstall Named Pipes on a server running Windows NT.

Related Topics

Help with Setup

Setting Up SQL Server 7.0: Links to New Information

Setup and Installation FAQ

Setup Troubleshooting: Checklist


Setup Troubleshooting: Checklist

  1. Read the error message. SQL Server Setup translates most error codes received from the operating system.

  2. With the error dialog box showing, open Sqlstp.log in the \Windows or \WinNT directory. Check the last few events in the log to see if any problems occurred before the error message was generated.

  3. If this is a custom installation and the component that failed to install properly is the Full-text Search (MSSearch) service, check the Mssearch.log in the \Temp directory to see if any problems occurred.

  4. Continue past the error message dialog box. Some error messages are just warnings. The Setup program may still finish successfully.

  5. If the Setup program fails, and you cannot diagnose and fix the problem yourself, make a copy of Sqlstp.log and Setup.log from the \Windows or \WinNT directory and, if you installed Full-text Search, make a copy of the Mssearch.log from the \Temp directory.

Note SQL Server Setup may encounter problems installing MS DTC on computers with multiple network cards or SPX installed. If SQL Server Setup stops responding, check the Sqlstp.log in the \Windows or \WinNT directory to see if MS DTC is being installed. If this is the problem, uninstall one of the network cards or SPX, and then retry SQL Server Setup.

Related Topics

Help with Setup

Setting Up SQL Server 7.0: Links to New Information

Setup and Installation FAQ


Testing an Installation of SQL Server 7.0

Before a server installation is complete, SQL Server Setup starts and connects to the server multiple times. When the installation is complete, you can test the installation yourself and connect to it locally by running the osql utility from the server.

To test an installation of SQL Server 7.0 (Command Prompt)

  1. Start Microsoft® SQL Server™ by entering from a command prompt:
    net start mssqlserver
  2. Connect to SQL Server by entering:
    osql /Usa /P

    If osql connects, this osql prompt appears:

    1>

    If osql cannot connect, an ODBC error is returned.

  3. Enter a simple query, for example
    SELECT @@SERVERNAME
GO

    The osql utility returns the server name, as shown in this example:

    1> SELECT @@SERVERNAME
2> GO
-------------------------------
WOLFHOUND
(1 row affected)
1>
  4. Verify that you have checked a SQL Server version 7.0 server by entering:
    SELECT @@VERSION
GO

    The osql utility returns the version information.

  5. Quit the osql utility by entering:
    exit


SQL Server Setup Frequently Asked Questions

For new and revised questions and answers about Microsoft® SQL Server™ Setup, see Setup and Installation FAQ.


Informational Files Created by SQL Server Setup

These informational files are generated to locate any problems during setup:

  • The Sqlstp.log file, located in your \Windows or \WinNT directory. For example, C:\WinNT\Sqlstp.log.

  • The Setup.log file, located in your \Windows or \WinNT directory. For example, C:\WinNT\Setup.log.

  • The most recent error log, located in the \Log directory of the target installation directory (by default, \Mssql7). For example, C:\Mssql7\Log\Errorlog.

  • The Cnfgsvr.out file, located in the Install directory of the target installation directory (by default, Mssql7). For example, C:\Mssql7\Install\Cnfgsvr.out.


Contents of the Sqlstp.log File

If SQL Server Setup fails, locate and view the Sqlstp.log file. This file is located in your \Windows or \WinNT directory. For example, C:\WinNT\Sqlstp.log.

This topic uses an Sqlstp.log file (generated from a Microsoft® SQL Server™ installation on a server running Microsoft Windows NT®) to illustrate the actions taken during an installation of SQL Server. The indentation, font variations, and spacing are for illustration purposes and are not representative of what you would see in the actual Sqlstp.log file. Comments have been added to aid in readability and appear as bold text inside parentheses.

In this log file, the Setup program:

  1. Checks for prerequisites. Setup checks for Microsoft Internet Explorer version 4.0 and Windows NT version 4.0 with Service Pack 4 (SP4).

    Note This information is provided for illustrative purposes only. Your values may vary.

    17:54:00 Begin Setup
17:54:00 7.00.517
17:54:00 Mode=Normal
17:54:01 (Begin Action: CheckRequirements)
17:54:01 System: Windows NT Server Enterprise Edition (Detect operating system)
17:54:01 Version: 4.0.1381
17:54:01 SQL Server ProductType: Standard
17:54:01 Processor Architecture: x86 (Pentium)
17:54:02 Scatter Gather I/O check succeeded. (This is for the mini-service pack.)
17:54:02 Service Pack: 768 (Detects service pack.)
17:54:02 NT Mini-Service Pack has been detected
17:54:02 File Version - C:\WINNT\System32\shdocvw.dll: 4.72.2106.7
17:54:02 ComputerName: SEATTLE1
17:54:02 User Name: andrewf
17:54:02 Domain: ACCOUNTING
17:54:02 C:\TEMP\_ISTMP29.DIR\odbcinst.exe -IsLocked -Silent 1 -SourceDir D:\sql97SRV\x86\ODBC -LogFile (Check to see if ODBC files are in use.)
C:\WINNT\sqlodbci.log
17:54:03 Process Exit Code: (0)
17:54:03 OS Language: 0x409
17:54:03 End Action CheckRequirements
17:54:03 Begin Action: Detection
17:54:03 Previous SQL Server version: 65
17:54:03 Previous Version SQL Path: E:\MSSQL
17:54:03 Previous Version SQL Data Path: E:\MSSQL
17:54:03 C:\TEMP\_ISTMP29.DIR\scm.exe -Silent 1 -Action 6 -Service SQLExecutive (Stop the SQLServerAgent service.)
17:54:08 Process Exit Code: (0)
17:54:08 C:\TEMP\_ISTMP29.DIR\scm.exe -Silent 1 -Action 6 -Service MSSQLServer (Stop the MSSQLServer service.)
17:54:13 Process Exit Code: (0)
17:54:13 End Action Detection
  2. Displays dialog boxes.
    17:54:13 Begin Action: ShowDialogs
17:54:13 Begin Action: DialogShowSdWelcome (Welcome screen)
17:58:38 End Action DialogShowSdWelcome
17:58:38 Begin Action: DialogShowSdLicense (User Licence)
17:58:39 End Action DialogShowSdLicense
17:58:39 Begin Action: DialogShowSdRegisterUserEx
17:58:43 End Action DialogShowSdRegisterUserEx
17:58:43 Begin Action: DialogAskSvrOptions
17:58:45 End Action DialogAskSvrOptions
  3. Chooses setup type and target directories.
    17:58:45 Begin Action: DialogShowSdSetupType (Choose setup type)
17:58:47 [SetupTypeSQL]
17:58:47 szDir=C:\MSSQL7 (Path for binary files)
17:58:47 Result=12
17:58:47 szDataDir=C:\MSSQL7 (Path for data files)
17:58:47 End Action DialogShowSdSetupType
17:58:47 Begin Action: DialogAskSvrOptions
17:58:48 End Action DialogAskSvrOptions
17:58:48 Begin Action: DialogShowSdSetupType
17:59:05 [SetupTypeSQL]
17:59:05 szDir=f:\mssql
17:59:05 Result=301
17:59:05 szDataDir=f:\mssql
17:59:05 End Action DialogShowSdSetupType
  4. Selects components.
    17:59:05 Begin Action: DialogShowSdComponentMult
17:59:05 End Action DialogShowSdComponentMult
17:59:05 Begin Action: DlgCpSortUnicode
17:59:05 Charset/SortOrder values obtained from existing server: 1252/52 (If upgrade, read sort order and char set)
17:59:06 [DlgCpSortUnicode]
17:59:06 SortId=52
17:59:06 LCID=1033
17:59:06 CompStyle=196609
17:59:06 Result=38147736
17:59:06 End Action DlgCpSortUnicode
17:59:06 Begin Action: DlgNetwork
17:59:06 [DlgServerNetwork]
17:59:06 NetworkLibs=4095
17:59:06 TCPPort=1433 (TCP/IP listen on port)
17:59:06 TCPPrxy=Default
17:59:06 NMPPipeName=\\.\pipe\sql\query (Named pipe listen on connection)
17:59:06 Result=1194052
17:59:06 End Action DlgNetwork
17:59:06 Begin Action: DlgServices
17:59:09 [DlgServices]
17:59:09 Local-Domain=986895
17:59:09 AutoStart=61455
17:59:09 Result=1
17:59:09 End Action DlgServices
  5. Begins file copy.
    17:59:09 Begin Action: DialogShowSdStartCopy (Start copying files)
17:59:10 End Action DialogShowSdStartCopy
17:59:10 End Action ShowDialogs
17:59:10 Begin Action ProcessBeforeDataMove:
17:59:10 DeinstallStart returned (f:\mssql): 0
17:59:10 End Action ProcessBeforeDataMove:
17:59:10 Begin Action ProcessComponentSelection:
17:59:10 End Action ProcessComponentSelection
17:59:10 Begin Action LogSelectedComponents:
17:59:10 SQLProg
17:59:10 SQLProg\SQLServr
17:59:10 SQLProg\SQLServr\Help
17:59:10 SQLProg\UpgTools
17:59:10 SQLProg\UpgTools\UpgSys
17:59:10 SQLProg\ReplSupp
17:59:10 SQLProg\ReplSupp\ReplSys
17:59:10 SQLProg\ReplSupp\ReplDat
17:59:10 SQLProg\Install
17:59:10 SQLProg\System
17:59:10 SQLProg\SvrExt
17:59:10 SQLProg\SvrExt\Help
17:59:10 SQLProg\DTS
17:59:10 SQLProg\DTS\Help
17:59:10 SQLProg\Dat
17:59:10 SQLProg\DatSmpl
17:59:10 SQLProg\BaseSys
17:59:10 SQLProg\BaseBinn
17:59:10 SQLProg\BaseInst
17:59:10 MgtTool
17:59:10 MgtTool\SEM
17:59:10 MgtTool\SEM\HTML
17:59:10 MgtTool\SEM\MSD98
17:59:10 MgtTool\SEM\MSD98SYS
17:59:10 MgtTool\SEM\MSD98Res
17:59:10 MgtTool\SEM\MSD98Hlp
17:59:10 MgtTool\SEM\Help
17:59:10 MgtTool\Profiler
17:59:10 MgtTool\Profiler\Help
17:59:10 MgtTool\Qryanlz
17:59:10 MgtTool\Qryanlz\Help
17:59:10 MgtTool\DTCCLi
17:59:10 MgtTool\Wzcnflct
17:59:10 MgtTool\Wzcnflct\Wzcnsys
17:59:10 MgtTool\Wzcnflct\WzcnHlp
17:59:10 MgtTool\UtilSys
17:59:10 MgtTool\UtilBinn
17:59:10 Connect
17:59:10 Connect\ConnSys
17:59:10 Connect\ConnBinn
17:59:10 Books
17:59:10 Books\Bookso
17:59:10 Books\BooksCD
17:59:10 Core
17:59:10 CoreSys
17:59:10 ODBC
17:59:10 OLEDB
17:59:10 Repostry
17:59:10 RepstSys
17:59:10 CoreMisc
17:59:10 Jet
17:59:10 NetCore
17:59:10 NetExt
17:59:10 CoreInst
17:59:10 End Action LogSelectedComponents
17:59:10 Begin Action MoveFileData:
17:59:10 Begin Action: Overwrite6xCliLibs
17:59:10 End Action Overwrite6xCliLibs
18:01:30 End Action MoveFileData
18:01:30 Begin Action ProcessAfterDataMove:
18:01:30 DeinstallSetReference (f:\mssql\sqlservr.exe) returned: 0
18:01:30 End Action ProcessAfterDataMove
  6. Installs packages.
    18:01:30 Begin Action InstallPkgs:
18:01:31 Setup is installing Microsoft Data Access Components (MDAC) ...
18:01:31 K:\sql97SRV\x86\Other\mdac_201.exe /q:a /c:"setup.exe /qtn"
18:02:00 Process Exit Code: (0)
18:02:00 Setup is installing Microsoft Management Console (MMC) ...
18:02:00 K:\sql97SRV\x86\Other\instmmc.exe /q:a /r:n
18:02:12 Process Exit Code: (0)
18:02:12 Setup is installing Microsoft Distributed Transaction Coordinator (MS DTC) ...
18:02:12 C:\TEMP\_ISTMP29.DIR\cldtcstp.exe -SupportDir C:\TEMP\_ISTMP29.DIR\ -DTCPkg K:\full\REL0517\sql97SRV\x86\Other\dtcsetup.exe -LogFile C:\WINNT\sqlstp.log
6/27/1998 18:2:12 This computer is not part of a cluster.
6/27/1998 18:2:22 Exit code from installing DTC on local machine: 3010
6/27/1998 18:2:22 DTC specific exit code: 0
6/27/1998 18:2:22 DTC specific error code: 0
6/27/1998 18:2:22 DTC specific completion comment: Source = DtcComplete, ExitType = Success, Successful Install
6/27/1998 18:2:22 Installation succeeded.
18:02:23 Process Exit Code: (1)
18:02:23 Setup is installing (HTML Help) ...
18:02:23 K:\sql97SRV\x86\binn\hhupd.exe /q:a /r:n
18:02:25 Process Exit Code: (0)
18:02:25 End Action InstallPkgs
18:02:25 Begin Action SelfRegister
18:02:52 Return code: 0
18:02:52 End Action SelfRegister
  7. Builds the server.
    18:02:52 Begin Action BuildServer:
18:02:52 f:\mssql\BINN\vswitch.exe -Silent 1 -NoCheck 1 -SwitchTo 70 (Switch to 7.0)
18:03:07 Process Exit Code: (0)
18:03:07 C:\TEMP\_ISTMP29.DIR\scm.exe -Silent 1 -Action 7 -SvcAccount LocalSystem -ExePath "f:\mssql\binn\sqlservr.exe" (Start MSSQLServer)
18:03:07 Process Exit Code: (0)
18:03:13 Path successfully updated.
18:03:13 %SystemRoot%\system32;%SystemRoot%;F:\BINN;f:\mssql\BINN
18:03:13 f:\mssql\binn\cnfgsvr.exe -Silent 2 -NoSampleDB 0 -SQLPath "f:\mssql\\" -SQLDataPath "f:\mssql\\" -SortID 52 -LCIDCompStyle "1033-196609" -User sa -Pwd (Configure the server)
18:04:43 Process Exit Code: (0)
18:04:43 End Action BuildServer

18:04:43 Begin Action SetupRegistry:
18:04:43 Transferring SQLExecutive settings ... (Setup or copy the SQL Executive settings)
18:04:43 Return Code: 0, Registry Value: NonAlertableErrors, Registry Data: 1204,4002
18:04:43 Return Code: 0, Registry Value: RestartSQLServer, Registry Data: 1
18:04:43 C:\WINNT\System32\unlodctr.exe MSSQLServer
18:04:43 Process Exit Code: (0)
  8. Sets up the registry.
    18:04:44 End Action SetupRegistry
18:04:44 Begin Action PostSetupRegistry:
18:04:44 C:\TEMP\_ISTMP29.DIR\scm.exe -Silent 1 -Action 7 -Service SQLExecutive -SvcStartType 1
18:04:44 Process Exit Code: (0)
18:04:44 C:\TEMP\_ISTMP29.DIR\scm.exe -Silent 1 -Action 7 -Service MSSQLServer -SvcStartType 2 -SvcAccount LocalSystem
18:04:44 Process Exit Code: (0)
18:04:44 C:\TEMP\_ISTMP29.DIR\scm.exe -Silent 1 -Action 7 -Service MSDTC -SvcStartType 1 -SvcAccount LocalSystem
18:04:44 Process Exit Code: (0)
18:04:44 C:\TEMP\_ISTMP29.DIR\scm.exe -Silent 1 -Action 5 -Service SQLServerAgent -Dependencies MSSQLServer -ExePath "f:\mssql\binn\sqlagent.exe"
18:04:44 Process Exit Code: (0)
18:04:45 SetupSQLExecSecurity returned: 0
18:04:45 C:\WINNT\System32\lodctr.exe "f:\mssql\BINN\sqlctr.ini"
18:04:46 Process Exit Code: (0)
18:04:46 f:\mssql\BINN\dcomscm.exe /Register
18:04:46 Process Exit Code: (0)
18:04:46 C:\Program Files\Common Files\Microsoft Shared\Database Replication\wzcnflct.exe /RegServer
18:04:47 Process Exit Code: (0)
18:04:47 End Action PostSetupRegistry
  9. Sets up the folders.
    18:04:47 Begin Action SetupFolders:
18:04:48 Microsoft SQL Server 7.0 Folder refreshed.
18:04:48 End Action SetupFolders
18:04:48 Action CleanUpInstall:
18:04:48 Uninstall command: C:\WINNT\IsUninst.exe -ff:\mssql\Uninst.isu -c"f:\mssql\sqlsun.dll" -m
18:04:48 K:\full\REL0517\sql97SRV\x86\binn\regrebld.exe -Backup f:\mssql\BINN
18:04:48 Process Exit Code: (0)
18:04:48 Registry successfully backed up.
  10. Displays completion message.
    18:04:48 Installation Succeeded
  11. Creates the Cnfgsvr.out file.
    Starting Service ...
Connecting to Server ...
driver={sql server};server=.;UID=sa;PWD=;database=master
Remapping Server Databases ...
[Microsoft][ODBC SQL Server Driver][SQL Server]Successfully detached database 'model'.
[Microsoft][ODBC SQL Server Driver][SQL Server]DBCC execution completed. If DBCC printed error messages, contact your system administrator.
[Microsoft][ODBC SQL Server Driver][SQL Server]Successfully attached database 'model'.
[Microsoft][ODBC SQL Server Driver][SQL Server]Successfully detached database 'msdb'.
[Microsoft][ODBC SQL Server Driver][SQL Server]DBCC execution completed. If DBCC printed error messages, contact your system administrator.
[Microsoft][ODBC SQL Server Driver][SQL Server]Successfully attached database 'msdb'.
[Microsoft][ODBC SQL Server Driver][SQL Server]Successfully detached database 'pubs'.
[Microsoft][ODBC SQL Server Driver][SQL Server]DBCC execution completed. If DBCC printed error messages, contact your system administrator.
[Microsoft][ODBC SQL Server Driver][SQL Server]Successfully attached database 'pubs'.
[Microsoft][ODBC SQL Server Driver][SQL Server]Successfully detached database 'Northwind'.
[Microsoft][ODBC SQL Server Driver][SQL Server]DBCC execution completed. If DBCC printed error messages, contact your system administrator.
[Microsoft][ODBC SQL Server Driver][SQL Server]Successfully attached database 'Northwind'.
Disconnecting from Server ...

Stopping Service ...

Starting Service ...

Connecting to Server ...
driver={sql server};server=.;UID=sa;PWD=;database=master

Configuring Server ...
[Microsoft][ODBC SQL Server Driver][SQL Server]Granted login access to 'BUILTIN\Administrators'.
[Microsoft][ODBC SQL Server Driver][SQL Server]'BUILTIN\Administrators' added to role 'sysadmin'.
[Microsoft][ODBC SQL Server Driver][SQL Server]DBCC execution completed. If DBCC printed error messages, contact your system administrator.
[Microsoft][ODBC SQL Server Driver][SQL Server]Configuration option changed. Run the RECONFIGURE statement to install.
[Microsoft][ODBC SQL Server Driver][SQL Server]DBCC execution completed. If DBCC printed error messages, contact your system administrator.
[Microsoft][ODBC SQL Server Driver][SQL Server]Configuration option changed. Run the RECONFIGURE statement to install.
Disconnecting from Server ...
Stopping Service ...
SQL Server has been successfully configured!


Scripting

When you run an unattended installation, return error codes may be returned. Here is a list of the error codes and a description.

Error code number | Error code description
0 | Success.
-1 | General error.
-2 | Invalid mode.
-3 | Required data not found in the Setup.iss file.
-4 | Not enough memory available.
-5 | File does not exist.
-6 | Cannot write to the response file.
-7 | Cannot write to the log file.
-8 | Invalid path to the InstallShield Silent response file.
-9 | Not a valid list type (string or number).
-10 | Data type is invalid.
-11 | Unknown error during setup.
-12 | Dialog boxes are out of order. This is a common error, caused when a dialog box appears out of order in the setup initialization file (Setup.iss). This can occur due to a system problem during the creation of Setup.iss.
-51 | Cannot create the specified folder.
-52 | Cannot access the specified file or folder.
-53 | Invalid option selected.


Troubleshooting the SQL Server Upgrade Wizard

The SQL Server Upgrade Wizard is designed to be as problem-free as possible; however, there are situations that may interfere with upgrading Microsoft® SQL Server™ version 6.x databases to SQL Server 7.0. The most common upgrade error is the failure to create an object in SQL Server 7.0. In many cases, the problem is simple, such as running out of disk space. In any case, the SQL Server Upgrade Wizard creates detailed logs specifying the problem.

Related Topics

Upgrading from SQL Server 6.x to SQL Server 7.0 FAQ

Upgrade Error Messages FAQ


Completing the SQL Server Upgrade Wizard

The SQL Server Upgrade Wizard performs a version upgrade using the options you specified. The Microsoft® SQL Server™ version 6.x server and data are left intact throughout the version upgrade process.

During the SQL Server Upgrade Wizard process:

  • User stored procedures are verified against the contents of syscomments for inconsistencies.

  • All logins, users, and permissions are validated.

If the SQL Server Upgrade Wizard detects any problems, a dialog box appears with this text:

One or more warnings have been logged. Please read the next screen carefully before you begin your upgrade.

For more information about specific errors, see the \Mssql\Upgrade\<servername>_<date>_<time> directory for *.err files.

The Summary of Warnings dialog box displays inconsistencies found in the user objects of accounts. Users should not continue until these are resolved. This output file is located in the \Mssql\Upgrade\<SQLServer_date_time> directory. The file name is associated with the database name and ID, "check65-<dbid><dbname>_err.out" (for example, "check65-007mypubs_err.out"). If the user continues without fixing the listed errors, check the relevant files for objects, logins, and invalid permissions.

If stored procedures have been renamed using sp_rename, the source stored in syscomments must be changed. Drop and re-create the procedure using the new name in the CREATE PROCEDURE syntax.

Related Topics

Upgrade Error Messages FAQ

Upgrading from SQL Server 6.x to SQL Server 7.0 FAQ


Upgrade Log Files

Each time you run the SQL Server Upgrade Wizard, a subdirectory is created in the C:\Mssql7\Upgrade directory. The subdirectory name consists of the server name and the current date and time to distinguish multiple runs of the SQL Server Upgrade Wizard (for example, SQLCONV1_092198_151900).

Inside this subdirectory are a number of descriptively named log files describing each of the upgrade steps. Also inside is another subdirectory for each upgraded database, including the master database. Inside each database folder are log files indicating the success of the creation of different types of objects in that database. Files that end in .ok indicate that all instances of that type of object were created successfully. Files that end in .err indicate that at least one instance of that type of object was not created successfully. The error files list each failed object creation statement and the reason the object was not created successfully.

Any log files that indicate a problem are listed at the end of the SQL Server Upgrade Wizard for easy access.

The \WinNT directory contains these files.

File | Description
Sqlupgrade.ini | List of .err files to be displayed by the Script Interpreter
Upgrade.ini | Template .ini file used to set defaults and run pre-task and post-task applications

The \Mssql7\Upgrade directory contains these files and directories.

File | Description
Status.log | Live status of the current set of tasks being executed by the script interpreter (useful for remote checking the upgrade status)
Check65.ini | Additional command prompt arguments sent to Check65.exe when the finish page is checking SQL Server 6.x databases
Upgrade.tmp | Upgrade.ini before the Finish button is clicked in SQL Server Upgrade Wizard
Upgrade.ini | Script file for the upgrade
<6.x server>_<date>_<time> directories | Object directory for each run of the SQL Server Upgrade Wizard

Object directories contain these files and directories. The SQL Server Upgrade Wizard names some files with either an .out or an .err extension, depending on the success of the task.

File | Description
Layout.ini | Used for communication between the SQL Server Upgrade Wizard and the layout utility, a subcomponent of the wizard
~backup.ini | Used to back up, delete, and restore SQL Server 6.x data files manually during a tape upgrade
<dbid><db>.ini | Files used by Layout.exe to cache the user settings for the current upgrade session
Changedbo.sql.out / .err | List of each statement that passed after the Change DBO task has been run
Check65 - <dbid><db>.out / .err | Output from Check65.exe created while checking the SQL Server 6.x databases for inconsistencies in the finish page of the SQL Server Upgrade Wizard
Check65 - <dbid><db>_err.out / .err | Errors from Check65.exe created while checking the SQL Server 6.x databases for inconsistencies in the finish page of the SQL Server Upgrade Wizard
Cleantempdb.bat | Used to delete the SQL Server 7.0 tempdb files after a successful upgrade
Cleantempdb.sql.out / .err | Output from deleting the SQL Server 7.0 tempdb files after a successful upgrade
Convload1.sql.out / .err | Sets configuration options
Convload2.sql.out / .err | Adds logins, remote logins, local groups, and other objects
Createdb.sql.out / .err | Creates the SQL Server 7.0 tempdb and user databases
Creating Databases.out / .err | Output from creating the SQL Server 7.0 tempdb and user databases
Dboptions.sql.out / .err | Status of database options that were set and passed
Dropping temporary tempdb files.out / .err | Success of dropping temporary tempdb files
Export and Import via Named Pipe - <dbid><db>.out / .err | Success of exporting data from SQL Server 6.x and importing into SQL Server 7.0 during a named pipe backup
Export Data - <dbid><db>.out / .err | Success of exporting data from SQL Server 6.x in a tape backup
Import Data - <dbid><db>.out / .err | Success of importing data into SQL Server 7.0 from a tape backup
Export Database Objects - <dbid><db>.out / .err | Success of exporting objects from SQL Server 6.x
Export Database Owners.out / .err | Success of exporting database owners from SQL Server 6.x
Export Logins - <#>.out / .err | Success of exporting logins from SQL Server 6.x
Export Server Settings from Master.out / .err | Success of exporting server settings from SQL Server 6.x
Export SQL Executive Settings.out / .err | Success of exporting SQL Executive settings
Import Database Objects - <dbid><db>.out / .err | Success of importing objects into SQL Server 7.0
Import Logins - <#>.out / .err | Success of importing logins into SQL Server 7.0
Import Server Settings from Master.out / .err | Success of importing server settings into SQL Server 7.0
Import SQL Executive Settings - <#>.out / .err | Success of importing SQL Executive settings into SQL Server Agent in SQL Server 7.0
Logininfo.sid | Integrated login mapping
Loginmap.txt | Integrated login mapping
Marking database upgrade status - <dbid><db>.out / .err | Success of marking which databases have been upgraded
Marking database upgrade status - <dbid><db>.sql.out / .err | Marks database upgrade status
Modifying scripts.out / .err | Success of removing stored procedures that are not to be created in SQL Server 7.0
Msdb6in.sql | msdb integrated logins run against SQL Server 7.0
Pre60to7.sql | Upgrades msdb from SQL Server 6.0 to SQL Server 7.0
Pre65to7.sql | Upgrades msdb from SQL Server 6.5 to SQL Server 7.0
Preparing MSDB for Upgrade - <#>.out / .err | Success of preparing msdb for upgrade
Preparing SQL-DMO for upgrade.out / .err | Success of preparing SQL-DMO for upgrade
Replupd.out / .errreplupd_erro.out / .err | Success of updating replication settings
Setting Database Options.out / .err | Success of setting database options in SQL Server 7.0
Upgrade Complete.ini | Lists upgrade options and success codes for each upgrade task and object type
Upgrade.log | Lists success code, start time, and stop time for each task in the Script Interpreter, created when the Script Interpreter exits or restarts after a failed task
Upgrade.reg | Registry entries for the upgrade DSN used by many of the ODBC applications in the upgrade process
<dbid><db> directories | Database-specific directories for each upgraded database, including master

Database-specific directories contain these files.

File | Description
<6.x server>.master.bak (only in the master database directory) | Backup of stored procedure script before the Modify Scripts task is run
<6.x server>.<db>.bnd.out / .err | Table column bindings
<6.x server>.<db>.def.out / .err | Defaults
<6.x server>.<db>.dr1.out / .err | DRI to be created before data transfer (clustered keys)
<6.x server>.<db>.dr2.out / .err | DRI to be created after data transfer (nonclustered keys)
<6.x server>.<db>.fky.out / .err | FOREIGN KEY constraints
<6.x server>.<db>.gr1.out / .err | Groups
<6.x server>.<db>.id1.out / .err | Indexes to be created before data transfer (clustered indexes)
<6.x server>.<db>.id2.out / .err | Indexes to be created after data transfer (nonclustered indexes)
<6.x server>.<db>.LGN | Creates logins
<6.x server>.<db>.prc.out / .err | Stored procedures
<6.x server>.<db>.prv.out / .err | Permissions
<6.x server>.<db>.rul.out / .err | Rules
<6.x server>.<db>.tab.out / .err | Tables
<6.x server>.<db>.trg.out / .err | Triggers
<6.x server>.<db>.udt.out / .err | User-defined data types
<6.x server>.<db>.usr.out / .err | Users
<6.x server>.<db>.viw.out / .err | Views

Related Topics

Upgrade Error Messages FAQ

Upgrading from SQL Server 6.x to SQL Server 7.0 FAQ


Server and Database Troubleshooting

Servers running Microsoft® SQL Server™ databases may have errors specific to the following areas:

  • Databases marked as suspect

  • Alerts

  • Backup and restore

  • Locks

  • Jobs

  • Microsoft Windows NT® services related to SQL Server

  • Interaction with the operating system

  • Recovery

  • SQL Server Agent


Resetting the Suspect Status

Microsoft® SQL Server™ returns error 1105 and sets the status column of sysdatabases to suspect if SQL Server is unable to complete recovery on a database because the disk drive no longer has any free space. Follow these steps to resolve the problem:

  1. Execute sp_resetstatus.

  2. Use ALTER DATABASE to add a data file or log file to the database.

  3. Stop and restart SQL Server.

    With the extra space provided by the new data file or log file, SQL Server should be able to complete recovery of the database.

  4. Free disk space and rerun recovery.

sp_resetstatus, shown below, turns off the suspect flag on a database but leaves all other database options intact.

Caution Use sp_resetstatus only when directed by your primary support provider or as recommended in Troubleshooting. Otherwise, you might damage your database.

Because this procedure modifies the system tables, the system administrator must enable updates to the system tables before creating this procedure. To enable updates, use this procedure:

USE master
GO
sp_configure 'allow updates', 1
GO
RECONFIGURE WITH OVERRIDE
GO

After the procedure is created, immediately disable updates to the system tables:

sp_configure 'allow updates', 0
GO
RECONFIGURE WITH OVERRIDE
GO

sp_resetstatus can be executed only by the system administrator. Always shut down SQL Server immediately after executing this procedure.

The syntax is:

sp_resetstatus database_name

This example turns off the suspect flag on the PRODUCTION database.

sp_resetstatus PRODUCTION

Here is the result set:

Database 'PRODUCTION' status reset!
WARNING: You must reboot SQL Server prior to accessing this database!
sp_resetstatus Stored Procedure Code

Here is the code of the sp_resetstatus stored procedure:

CREATE PROC sp_resetstatus @dbname varchar(30) AS
DECLARE @msg varchar(80)
IF @@trancount > 0
      BEGIN
         PRINT "Can't run sp_resetstatus from within a transaction."
         RETURN (1)
      END
IF suser_id() != 1
      BEGIN
         SELECT @msg =  "You must be the System Administrator (SA)"
         SELECT @msg = @msg + " to execute this procedure."
         RETURN (1)
      END
IF (SELECT COUNT(*) FROM master..sysdatabases
         WHERE name = @dbname) != 1
      BEGIN
         SELECT @msg = "Database '" + @dbname + "' does not exist!"
         PRINT @msg
         RETURN (1)
      END
IF (SELECT COUNT(*) FROM master..sysdatabases
         WHERE name = @dbname AND status & 256 = 256) != 1
      BEGIN
         PRINT "sp_resetstatus can only be run on suspect databases."
         RETURN (1)
      END
BEGIN TRAN
      UPDATE master..sysdatabases SET status = status ^ 256
         WHERE name = @dbname
      IF @@error != 0 OR @@rowcount != 1
         ROLLBACK TRAN
      ELSE
         BEGIN
            COMMIT TRAN
            SELECT @msg = "Database '" + @dbname + "' status reset!"
            PRINT @msg
            PRINT " "
            PRINT "WARNING: You must reboot SQL    Server prior to  "
            PRINT "         accessing this database!"
            PRINT " "
         END

GO

Related Topics

ALTER DATABASE

BEGIN TRANSACTION

COMMIT TRANSACTION

ROLLBACK TRANSACTION

Starting, Pausing, and Stopping SQL Server

sysdatabases

Transactions

Transactions Architecture

UPDATE


Troubleshooting Alerts

If you are experiencing problems with alerts, read the solutions detailed here.

An alert is not firing.
  • Ensure that the SQLServerAgent and EventLog services are running.

  • Ensure that the event appears in the Microsoft® Windows NT® application log.

    Launch the Windows NT Event Viewer. If the event is not in the log, check the log settings. On the Log menu, click Log Settings, and then in the Change Settings for Log box, select Application. If needed, set these options to the specified values.

    Setting | Value
    Maximum Log Size | Minimum of 2,048 KB (2 MB)
    Event Log Wrapping | Overwrite Events as Needed

    Note Also check the Microsoft SQL Server™ error log; events written to the Windows NT application log are also written to the SQL Server error log. To focus the search on the cause of the problem, compare the dates and times for events between the SQL Server error log, the SQL Server Agent error log, and the Windows NT application log.

  • Ensure that the alert is enabled.

  • Ensure that the history values of the alert (for example, the occurrence count and last occurred values) are changing.

  • Ensure that the counter value is at, above, or below the defined threshold value for a minimum of 20 seconds.

    SQL Server Agent polls the performance counters at 20-second intervals.

    Important Using a frequency higher than 20 seconds increases the processing overhead for SQL Server.

    If a counter spikes for only a few seconds, which satisfies the performance condition, there is a high likelihood that SQL Server Agent will fail to see the spike; the alert will not fire.

An alert is firing, but the responsible operator is not receiving notification.
  • Check the operator and notification information to ensure that you have entered the correct e-mail, pager, and net send addresses.

  • Test the e-mail, pager, and net send addresses.

  • Check the operator's on-duty schedule.

  • Check the SQL Server Agent error log for any e-mail problems.
An alert is firing, but the notification is not timely.

The probable causes for this include:

  • The Delay between responses setting for the alert is too high.

  • The alert response is complex, requiring many operator notifications.

    Note Send notifications to as few operators as possible. For example, send notifications to one group e-mail address rather than notifying several individual operators.

This error appears in the SQLServerAgent error log on Windows 95 or Windows 98 servers: "The common event system is being restarted after function ProduceEventsFromSS returned error 44, 'Unable To Connect'"

This may indicate incorrect registered server information. Ensure that the registered server information for the local server is correct and that the registered login name is a member of the sysadmin fixed server role.

The Windows NT application log fills rapidly with the same error.
The CPU usage is high.
The number of alert responses is high.

Because SQL Server Agent both depends on and monitors SQL Server, SQL Server Agent can become caught in an endless loop of firing the same alert. This generally occurs when SQL Server runs out of an essential global resource and an alert has been defined on this event.

When the number of alerts raised exceeds the SQL Server Agent alert processing rate, a backlog is created.

To eliminate an alert processing backlog

  1. Increase the amount of time in the Delay between responses setting.

  2. Correct the global resource problem to prevent recurring alerts from using all your resources.

  3. Configure an error to be nonalert-generating.

    Important Configuring an error to not generate an alert can be performed only within the registry. This solution should be used only as a last resort.

  4. Clear the Windows NT application log if: the backlog is not clearing, you do not want to wait for SQL Server Agent to clear the backlog, or you want an empty, unpopulated Windows NT application log.

    Caution Clearing the Windows NT application log using the Clear All Events option on the Log menu deletes all events from the error log, including those unrelated to SQL Server.

To configure an error to not generate an alert

  1. Start the Registry Editor.

  2. Locate the following registry key:
    HKEY_LOCAL_MACHINE
\SOFTWARE
\Microsoft
\MSSQLServer
\SQLServerAgent
\NonAlertableErrors
  3. Type the error number.

    The list of nonalertable errors can be a maximum of 1,024 characters, should not contain spaces, and items must be separated by commas (,). Any error number in the list that appears after the number 0 will generate an alert. In this way, the entire list can be suspended temporarily if a 0 is the first list item. For example, assume that the list consists of

    1204,0,100

    In this example, only error number 1204 does not generate an alert. Because error number 100 follows error number 0 in the list, it will generate an alert.

Important Never remove the default nonalert-generating error, error 1204. Error 1204 defines those conditions known to lead to recursive alert generation. Removing this error will hamper attempts to resolve recursive alert generation.

Related Topics

Defining Alerts

Error 1204

Modifying and Viewing Alerts


Troubleshooting Backing Up and Restoring

Here are some problems you may encounter when backing up and restoring databases and transaction logs:

  • A syntax error occurred when using the BACKUP or RESTORE statements, which indicates that the database is in Microsoft® SQL Server™ version 6.5 compatibility mode. The BACKUP and RESTORE keywords are valid only with SQL Server 7.0 databases.

    Set the SQL Server compatibility level to 70 before using BACKUP or RESTORE statements. For more information, see Error 156.

  • The BACKUP statement cannot be performed at the same time as these operations:
    • DBCC CHECKALLOC

    • DBCC SHRINKDATABASE

    • Bulk copy (bcp utility)

    • SELECT INTO

    • File manipulation

    Reissue the backup operation after the conflicting operation has finished. For more information, see Error 3023.

  • A standby database cannot be backed up if it has not yet been recovered.

    Use backups from your primary server until operations have switched to the standby. For more information, see Error 3036.

  • A database cannot be restored unless its sort order, collation sequence, Unicode locale ID, and Unicode comparison style match those of the server.

    For more information, see Error 3120 or Error 3149.

  • The backup being restored is a valid Microsoft Tape Format, but is not a SQL Server backup.

    To determine the backup contents, use RESTORE HEADERONLY. For more information, see Error 3143.

  • The backup set is a backup of a database with the same name as the database to which you are restoring. However, the database being restored to was created by a different CREATE DATABASE statement than the database in the backup set.

    Either overwrite the existing database or restore the backup set to a different database name. For more information, see Error 3154.

  • A restore operation failed because ALTER DATABASE was used to add or remove one or more database or transaction log files.

    Restore a full database backup created after the files were added or removed. For more information, see Error 3155.

  • An attempt was made to use a logical device that is not a defined backup device.

    Either create the device or use the TAPE = or DISK = syntax of the BACKUP statement. For more information, see Error 3206 or Error 3209.

  • The media family spans multiple volumes. The restore operation has already processed the data on the specified volume.

    Replace the current volume with a volume not yet processed. For more information, see Error 3227.

  • The backup device does not contain data in Microsoft Tape Format. For more information, see Error 3242.

  • The media family spans multiple volumes. The restore operation expected to process the volume number specified in the error message, but found a different volume number instead.

    To continue the restore operation, replace the current volume with the volume number specified in the error message. For more information, see Error 3247.

  • The media family spans multiple volumes. The backup set to be processed by the restore operation starts on an earlier volume than the one inserted into the named device.

    Replace the current volume with a volume containing the start of the target backup set. For more information, see Error 3249.

  • The restore operation has completely processed the media family on the named device, and is now ready to reuse the device to restore one of the remaining media families.

    Replace the current volume with the first volume of a media family that has not yet been processed. For more information, see Error 3251.

  • The backup operation that created the backup set did not finish successfully.

    Either restore a different database backup, if restoring a database backup, and apply transaction logs; or apply the next transaction log backup, if restoring a transaction log backup. For more information, see Error 3256.

  • The volume on the named device does not belong to the same RAID media set as the other volumes being processed.

    Either remove the offending volume and insert the next volume of the media family, for tape media sets; or, for disks, reissue the command, naming only those backup devices part of the same RAID media set. For more information, see Error 3258.

  • The server will not initialize the volume inserted into the named device as a continuation volume for the designated media family because the RAID media set spans multiple volumes.

    Replace the current volume with a fresh tape that can be overwritten. For more information, see Error 3263.

  • The server is too busy to perform the backup or restore operation.

    Retry the operation after reducing the server load. For more information, see Error 3267 or Error 3627.

  • If the trunc. log on chkpt. database option is enabled, the log is truncated when periodic checkpoints occur. Only full database and differential database backups are allowed because the log has been truncated and any log backups made would be unusable.

    Either perform full and differential backups, leaving trunc. log on chkpt. enabled, or maintain a full set of transaction log backups, disabling trunc. log on chkpt. For more information, see Error 4208.

  • To restore the database after failure you must begin either with a full database backup or with a complete set of file backups.

    Perform a full database backup before backing up the transaction log. For more information, see Error 4214.

  • The restore operation found a gap between the last restore and the transaction log that you attempted to apply.

    Apply the transaction log backups in the order they were created originally. For more information, see Error 4305.

  • No further restore operations may be performed after a database has been recovered.

    Restart the restore sequence and use the NORECOVERY option on all but the final RESTORE statement. For more information, see Error 4306.

  • Could not recover the database to the state that it was in at the time the current log backup was made. At least one file has been modified since this time. Therefore, recovery is not possible because the database would be left in an inconsistent state.

    Recover the database to either its most recent state or to a specific point in time. For more information, see Error 4318.

Related Topics

Backing Up and Restoring Databases

BACKUP

bcp Utility

BULK INSERT

Insufficient Disk Space

Overview of Data Transformation Services

Recovery Performance

Reserved Keywords

RESTORE

Server and Database Troubleshooting

Setting Database Options

sp_addumpdevice

sp_dbcmptlevel

sp_dboption

Troubleshooting Recovery


Troubleshooting Orphaned Users

When restoring a database backup to another server, you may experience a problem with orphaned users. This scenario displays and resolves the problem:

  1. Alias the login janetl to dbo by executing sp_addlogin.
    sp_addlogin 'janetl', 'dbo'
  2. Back up a database. In this example, back up Northwind.
    BACKUP DATABASE Northwind
TO DISK = 'c:\mssql7\backup\northwnd'
  3. Drop the database that was just backed up.
    DROP DATABASE Northwind
  4. Drop the login.
    sp_droplogin 'janetl'
  5. Restore the backed up database.
    RESTORE DATABASE Northwind
FROM DISK = 'c:\mssql7\backup\northwnd'

    The janetl login cannot access the Northwind database unless the guest login is allowed. Even though the janetl login has been deleted, it still shows up (as an orphaned row) in the sysusers table:

    USE Northwind
SELECT *
FROM sysusers
WHERE name = 'janetl'

To resolve orphaned users

  1. Add a temporary login using sp_addlogin. Specify the security identifier (SID) (from sysusers) for the orphaned user.
    sp_addlogin @loginame = 'nancyd',
    @sid = 0x32C864A70427D211B4DD00104B9E8A00
  2. Drop the temporary alias that belongs to the aliased SID using sp_dropalias.
    sp_dropalias 'nancyd'
  3. Drop the original user (now orphaned) using sp_dropuser.
    sp_dropuser 'janetl'
  4. Drop the original login using sp_droplogin.
    sp_droplogin 'nancyd'

Related Topics

Backing Up and Restoring Databases

BACKUP

RESTORE

sp_addlogin

sp_dropalias

sp_droplogin

sp_dropuser


Troubleshooting Data Transformation Services

Note For immediate help in diagnosing your DTS problems, see the new online setup troubleshooter on the Product Support Web site. For more information, see Help with Data Transformation Services.

Following is information about errors that might be generated while using DTS Designer:

  • When using DTS on Alpha platforms, the Microsoft OLE DB Provider for Jet, supplied by default with Microsoft® SQL Server™, works when configuring connections to Microsoft Access. However, the ISAM components needed to make connections between that provider and data sources such as Microsoft Excel, Paradox, and dBase files are not installed. If you try to configure any of these data sources on an Alpha computer, you will receive an error message.

  • If a connection is created for a database user who does not have permission to access the model database, when opening the transformation properties, the user will receive the message "Unspecified error. Server user '<user name>' is not a valid user in database 'model'". This message occurs because the user cannot see the provider type information. However, the error is informational and does not prevent the user from creating the transformations.

If you receive the message "Cannot find the specified file," when attempting to access a DTS package saved to a COM-structured storage file, verify that:

  • The directory path is specified correctly.

  • Permissions are set correctly.

Note It is possible that the file is corrupt and that the stream cannot be detected.


Troubleshooting Locking

Two locking problems that an application may encounter are deadlocking and blocking.

Deadlocking

Deadlocking is a condition that can occur on any system with multiple users, not only on a relational database management system (RDBMS). A deadlock occurs when two users (or sessions) have locks on separate objects and each user wants a lock on the other's object. Each user waits for the other to release their lock. Microsoft® SQL Server™ detects when two connections have gotten into a deadlock. One of the connections is chosen as a deadlock victim. The connection's transaction is rolled back and the application receives an error.

If deadlocks become a common occurrence to the point that their rollbacks are causing excessive performance degradation, you may need to perform more in-depth investigation. Use trace flag 1204. For example, this command starts SQL Server from the command prompt and enables trace flag 1204:

c:\mssql7\binn\sqlservr -T1204 /dc:\mssql7\data\master.mdf

All messages will now appear in the console screen where SQL Server was started and in the error log.

Deadlocking can also occur when using distributed transactions. For information about resolving deadlocks with distributed transactions, see Transactions Architecture.

Blocking

An unavoidable characteristic of any lock-based concurrent system is that blocking may occur under some conditions. Blocking happens when one connection holds a lock and a second connection wants a conflicting lock type. This forces the second connection to either wait or block on the first.

In this discussion, the term "connection" refers to a single logged-on session of the database. Each connection appears as a system process ID (SPID). Each of these SPIDs is often referred to as a process, although it is not a separate process context in the usual sense. Rather, each SPID consists of the server resources and data structures necessary to service the requests of a single connection from a given client. A single client application may have one or more connections. From the perspective of SQL Server, there is no difference between multiple connections from a single client application on a single client computer and multiple connections from multiple client applications or multiple client computers. One connection can block another connection, regardless of whether they emanate from the same application or separate applications on two different client computers.

To eliminate deadlocking or blocking problems, contact your system administrator. The system administrator should check the waittype, waittime, lastwaittype, and the waitresource columns of sysprocesses to see what activities each SPID is performing.

Related Topics

Deadlocking

Distributed Transactions

Locking

SET DEADLOCK_PRIORITY

sp_who

SQL Server: Locks Object

sqlservr Application

syslockinfo

sysprocesses

Trace Flags

Understanding and Avoiding Blocking


Troubleshooting MSSQLServer or SQLServerAgent Services User Accounts

If you have difficulty starting either the MSSQLServer or SQLServerAgent service under a particular user account, you can:

  • Use Windows NT User Manager to verify that the account has Log on as a service rights on the computer. (Both of these must be assigned within the security context of the local computer, not the domain.)

    If services are started by someone who is not a member of the Windows NT local administrators group, the service account must have these permissions:

    • Full control of the main Microsoft® SQL Server™ directory (by default, \Mssql7).

    • Full control of the SQL Server database files, regardless of storage location.

    • The Log on as a service right. Ensure that all logon hours are allowed in the Logon Hours dialog box.

    • Full control of registry keys at and below HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer.

    • Selection of the Password Never Expires box.

    • Full control of registry keys at and below HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServer.

    • Full control of registry keys at and below HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib.

    If the service does not have the appropriate permissions, certain functionality cannot be accomplished. For example, to write to a mail slot, the service must have a Windows NT domain user account, not just local system, with network write privileges. The service must be a Windows NT account with local administrator privileges to:

    • Create SQL Server Agent CmdExec and ActiveX Script jobs not belonging to members of the sysadmin fixed server role.

    • Use the automatic server restart feature of SQL Server Agent.

    • Create SQL Server Agent jobs to be run when the server is idle.
  • For the MSSQLServer service, right-click the server, click Properties, and then click the Security tab. Under Startup service account, enter the appropriate account and password. If the password is incorrect or has changed, the service cannot be started until the correct password is entered.

    Caution For the MSDTC service only, use Services in Control Panel to reenter the user account password. If the password is incorrect or has changed, the service cannot be started until the correct password is entered. If necessary, change the account's password using User Manager, and then enter that password for the service using Services in Control Panel.

  • For the SQLServerAgent service, expand the server, and then expand Management. Right-click SQLServerAgent and click Properties. On the General tab (the default) in the Service startup account section, enter the account and password.

  • Assign the account experiencing the problem to another service. If you still have difficulty starting the MSSQLServer or SQLServerAgent service under a particular user account, assign that account to another service (for example, the Spooler service) and verify that the service can be started successfully. If not, the account is either not configured properly or cannot be validated by the domain controller (for example, if no domain controller is available).


Troubleshooting Full-Text Search

Note For immediate help in diagnosing Full-Text Search issues, see the new online setup troubleshooter on the Product Support Web site. For more information, see Help with Full-Text Search.

If you installed the Full-Text Search feature, it runs as the Microsoft Search service (MSSearch) in Control Panel. If full-text search is not working properly, make sure that the Full-Text Search feature was installed and is running. In SQL Server Service Manager, in the Services box, make sure the Microsoft Search option is selected. For more information, see How to start and stop the Microsoft Search Service for full-text support (Enterprise Manager) in SQL Server Books Online for SQL Server 7.0.

MSSearch runs in the context of the local system account. During SQL Server setup, SQL Server adds itself to MSSearch service as an administrator. All subsequent changes to the MSSQLServer service account must be made through SQL Server Enterprise Manager. While MSSearch service is running, right-click the server, click Properties, and then click the Security tab. Under Startup Service Account, enter the appropriate account and password. If the password is incorrect or has changed, the service cannot be started until the correct password is entered. This approach ensures that any service account change gets updated in the Microsoft Search service.

Caution Do not use Services in Control Panel to change user account information. Changing user account information through Control Panel results in a mismatch of account information between the MSSQLServer and MSSearch services, and causes full-text catalog population and querying to fail.

If a mismatch of user account information between the MSSQLServer and MSSearch services occurs, ensure that both the MSSQLServer and MSSearch services are running. And then, start SQL Server Enterprise Manager. Using the Properties option and the Security tab as described earlier, change the password for the MSSQLServer service. Changing the password for the MSSQLServer service implicitly updates the account information for the MSSearch service.

Related Topics

Full-text Indexes

Full-text Indexing Support

Full-text Query Architecture

Full-text Querying SQL Server Data


Before Uninstalling Site Server 3.0

If the computer running Microsoft® SQL Server™ and Full-Text Search also has Microsoft Site Server version 3.0 installed, ensure that Site Server 3.0 Service Pack 1 (SP1) is installed before uninstalling Site Server. If this service pack is not applied, Full-Text Search will not work properly after Site Server 3.0 has been uninstalled.

Related Topics

Full-text Indexes

Full-text Indexing Support

Full-text Query Architecture

Full-text Querying SQL Server Data

Troubleshooting Full-Text Search


Presence of UNC path in PATH Environment Variable

If your computer running Microsoft® Windows NT does have a UNC path specification present in the system PATH variable or in the user PATH variable, you may experience problems with Full-Text indexing and Full-Text Search. First, double-check whether you have a UNC path specification in your PATH variable. To do this, issue echo %path% from the command prompt. If you have a UNC path specification, you will see one or more paths of the form \\computer_name\share_name.

The symptoms of these problems may include one or more of the following:

  • When attempting to issue a full-text query, you receive an error message stating "Full-text query failed because full-text catalog '<your_fulltext_catalog_name>' is not yet ready for queries."

  • The Item count, Catalog size, and Unique word count options (located in the Properties dialog box in SQL Server Enterprise Manager) are all set to 0, even though you populated this full-text catalog.

  • The Windows NT application log has "stop event" items logged, where Source is Microsoft Search and Category is Indexer. In addition, one of these error event items contains the following error message:

    "Unable to load DLL <X:\Program Files\Common Files\system\ContentIndex\ontciutl.dll>. Error 5 - Access is denied."

    Note X refers to the drive letter where your Program Files\Common Files directory resides on your computer.

    Two possible solutions to this problem are:

    • If possible, remove the UNC path specification(s) in the SYSTEM and USER PATH variables. Replace these UNC path(s) with remapped drive(s).

    • Add the location \%SYSTEMDRIVE%\Program Files\Common Files\SYSTEM\ContentIndex in front of any UNC path specification in the SYSTEM path.

      Note After making any of these changes, restart your computer. SYSTEM path changes do not take effect until the computer is restarted.

      If you have not attempted to repopulate your full-text catalog(s) after the addition of the UNC path specification(s) in your user or system PATH variables, you can use Full-Text Search. If you have attempted repopulation, you must rebuild your full-text catalog(s) and then repopulate them before you can issue full-text queries.

Related Topics

Full-text Indexes

How to rebuild a full-text catalog (Enterprise Manager)


Troubleshooting Multiserver Jobs

When using multiserver jobs, you may experience one or more of these problems.

The job will not download.

Check the download list at the master server (MSX) either through the user interface or by executing sp_help_downloadlist.

Check the SQL Server Agent error log at the target server (TSX).

After resolving the problem, clear the blocking error at the MSX with the user interface.

There are problems with enlisting or defecting.
  • Ensure that an operator named MSXOperator exists at the MSX.

  • Ensure that the MSX is running Mixed Mode Security (SQL Server Authentication and Windows NT Authentication).

  • Ensure that the MSX is running Microsoft® Windows NT®, not Microsoft Windows® 95 or Windows 98.

  • Check named pipes connectivity using makepipe at the MSX and readpipe at the TSX.
What if a TSX is reinstalled while it is still enlisted?

The uninstall portion of SQL Server Setup issues a warning that the server should be defected before uninstalling the TSX. If either the warning is ignored, or the warning is noted but the MSX is unavailable when the defection occurs, it becomes necessary to resolve the dangling enlistment at the MSX.

To resolve the dangling enlistment

  • At the MSX, execute:
    EXECUTE sp_delete_targetserver @server_name = '<TSX server name>',
@post_defection = 0
What if I need to reinstall msdb on a TSX server?

Either a backup of msdb exists and the msdb database is successfully restored or the msdb database is damaged and no backup is available.

If a backup of msdb is available and msdb is successfully restored, MSX jobs that have been deleted after the msdb backup may also have been restored. To ensure that the deleted jobs are removed, delete all jobs that originated from the MSX and re-post the jobs.

To delete and repost jobs

  • At the MSX, execute:
    EXECUTE sp_resync_targetserver '<server name>'

    Or

  • In SQL Server Enterprise Manager, in the Multi Server Job Execution Status dialog box, click Synchronize Jobs.

If the msdb database is damaged and no backup is available, the TSX must be reenlisted.

To reenlist the TSX

  1. At the MSX:

    All jobs that were targeted at the reenlisted TSX must be retargeted using sp_add_jobserver. To generate the Transact-SQL statements to retarget jobs using sp_add_jobserver, execute sp_generate_target_server_job_assignment_sql and save the result set:

    EXECUTE sp_generate_target_server_job_assignment_sql
    '<TSX server name>'
  2. At the TSX, execute:
    EXECUTE sp_msx_enlist '<MSX server name>'
  3. At the MSX, execute the previously saved result set of sp_generate_target_server_job_assignment_sql.
What if I need to restore a backup of msdb on the MSX?

If possible, for all TSX servers that have enlisted after the last backup:

  1. At the MSX, execute sp_generate_target_server_job_assignment_sql and save the result set. :
    EXECUTE sp_generate_target_server_job_assignment_sql
    '<TSX server name>'
  2. At the MSX, restore the msdb database from a backup.

    Any TSX that has defected after the last msdb backup must be defected manually.

To defect a TSX server manually

  • At the MSX, execute:
    EXECUTE sp_delete_targetserver @server_name = '<TSX server name>,     @post_defection = 0

Any TSX that has enlisted after the last msdb backup must then be reenlisted.

To reenlist a TSX that was enlisted after the last msdb backup

  1. At the TSX, execute:
    EXECUTE sp_msx_defect
EXECUTE sp_msx_enlist '<MSX server name>'
  2. At the MSX, execute the previously saved result set of sp_generate_target_server_job_assignment_sql.

Note If a defected server is not reenlisted, it will generate many "Incomplete enlistment" errors in the SQL Server Agent error log of the TSX.

If jobs or job assignments have been added, deleted, or changed after the last msdb backup, all remaining TSX servers must be resynchronized.

To resynchronize TSX servers after the last msdb backup

  • Execute:
    EXECUTE sp_resync_targetserver 'ALL'

This EXECUTE statement causes each TSX to delete all its MSX jobs and then download them again. This is a very expensive command. An alternative to executing sp_resync_targetserver with the ALL option is to resynchronize the TSX servers manually by selectively posting instructions for all the changes. This approach may work if only a very few changes occurred. However, it is recommended that sp_resync_targetserver with the ALL option be used to resynchronize TSX servers.

What if a TSX computer is renamed while enlisted?

The TSX server can be defected from the TSX side, but must be defected manually from the MSX side. Jobs that were targeted at the TSX must be retargeted by executing sp_add_jobserver. To generate the Transact-SQL statements to retarget jobs using sp_add_jobserver, execute sp_generate_target_server_job_assignment_sql.

  1. At the MSX, execute sp_generate_target_server_job_assignment_sql and save the result set:
    EXECUTE sp_generate_target_server_job_assignment_sql
    '<Old TSX server name>', '<New TSX server name>'
  2. At the TSX, execute:
    EXECUTE sp_msx_defect
  3. At the MSX, execute:
    EXECUTE sp_delete_targetserver
    @server_name = '<Old TSX server name>',
    @post_defection = 0
  4. At the TSX, back up the msdb database. Then, uninstall and reinstall SQL Server.

    Important Uninstalling and reinstalling SQL Server is necessary because SQL Server does not support renaming of the computer.

  5. Restore the backup of the msdb database.

  6. At the TSX, execute:
    EXECUTE sp_msx_enlist '<MSX server name>'
  7. At the MSX, execute the previously saved result set of sp_generate_target_server_job_assignment_sql.

Related Topics

Backing Up the model, msdb and distribution Databases

Defining Multiserver Jobs

makepipe Utility

Overview of Installing SQL Server

readpipe Utility

sp_add_jobserver


Troubleshooting the Operating System

When installing Microsoft® SQL Server™ on a Microsoft Windows® NTFS partition, make sure that the NTFS file permissions allow read/write access. Otherwise, this error message may appear in the Microsoft Windows NT® application log (for each installation attempt):

Msg 17050: initerrlog: Could not open error log file 'C:\MSSQL7\log\ERRORLOG'. Operating system error =5(Access is denied.).

Ensure that all system requirements are met, including installation of Microsoft Windows NT Service Pack 4 (SP4). For more information about system requirements, see Troubleshooting SQL Server Setup.

Related Topics

Error 17050


Appearance of Internet Connection Dialog Box at Startup of Windows 95 or Windows 98

If remote connections are enabled in Microsoft® Windows® 95 or Windows 98, the system may initiate an Internet connection at Windows startup or at the start of many applications. This behavior is sometimes called autodial or autoconnect. This behavior can be disabled by setting the registry key EnableRemoteConnect to N.

To do this, create a text file named DisbleAutoConnect.reg with the following three lines:

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLE]
"EnableRemoteConnect"="N"

Changing this setting to disable remote connections should not prevent any of your usual Internet activities. This setting is the default for most systems. However, enabling remote connections is necessary for some features of DCOM For more information, see the Knowledge Base article, HOWTO: Troubleshoot Run-Time Error '429' in DCOM Applications.

If there are instances when you need to have remote connections enabled, create a second REG file, named EnableRemoteConnect.reg, with the following three lines:

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLE]
"EnableRemoteConnect"="Y"

Run EnableAutoConnect.reg to make the setting, and then run DisbleAutoConnect.reg to disable it when autoconnect is no longer needed.


Thread Pooling

The Microsoft® SQL Server™ error log may display the message:

The working thread limit of 255 has been reached

This message is an informational message and does not indicate any problem with the system.

SQL Server maintains a pool of operating-system threads for executing batches of SQL statements as they arrive from clients. On Microsoft Windows NT®, if the server lightweight pooling configuration option is set to 1, SQL Server maintains a pool of fibers instead of threads; fibers use fewer resources than threads. Using a pool of threads or fibers allows SQL Server to optimize the allocation of processing time when executing multiple SQL statements at the same time. The threads or fibers in this pool are known collectively as the worker threads. For more information, see Thread and Task Architecture in SQL Server Books Online for SQL Server 7.0.

The number of worker threads is controlled by the max worker threads server configuration option. The default is 255 and rarely needs to be changed.

When a batch of Transact-SQL statements is received from a client, if an existing worker thread is free, it is allocated to execute the batch. If no existing worker threads are free and the number of worker threads is less than max worker threads, a new worker thread is allocated. If no worker threads are free and max worker threads is reached, the new batch waits until an existing worker thread completes its current batch and becomes free. When the number of worker threads reaches max worker threads, SQL Server displays this message:

The working thread limit of 255 has been reached

Having all worker threads allocated does not mean that the performance of SQL Server will degrade. Typically, a new batch has only a short wait for a free thread. Allocating more threads may degrade performance because of the increased work required to coordinate resources among the threads. Many SQL Server systems running in production reach this state and run with very high performance levels.

Related Topics

max worker threads Option

Setting Configuration Options

sp_configure


Insufficient Virtual Memory on the Server

When the applications running on a server request more memory than is available on the server, Microsoft® Windows® opens the Server Process - Out of Virtual Memory dialog box with the following text:

Your system is running low on virtual memory. Please close some applications. You can then start the System option in the Control Panel and choose the Virtual Memory button to create an additional paging file or increase the size of your current paging file.

Use Virtual Memory in Control Panel to make sure that the amount of virtual memory at least 1.5 times the amount of physical memory available on the server. Microsoft SQL Server™ dynamically requests or frees memory as needed on Microsoft Windows NT® systems. SQL Server should not cause this error on Windows NT when running with the default configuration options. For more information, see Configuring Virtual Memory.

If the virtual memory setting seems appropriate, consider the following actions:

  • Check that the SQL Server max server memory and min server memory configuration options are not set high enough to use most of the virtual memory. For more information, see Server Memory Options in SQL Server Books Online for SQL Server 7.0.

  • Check that other applications on the server are not using the available virtual memory.

  • Use the max server memory and min server memory configuration options to control the amount of memory requested by SQL Server.


Insufficient Resource Space

If a Microsoft® SQL Server™ configuration option is set too high for the amount of available resources, SQL Server fails to start. For example, if the max server memory setting is too high, other applications may take some time to start.

Reset configuration options to their default values or start SQL Server with minimal configuration by using the -f startup option of the sqlservr application. For information about setting default values, see the Setting Configuration Options or sp_configure topics in SQL Server Books Online for SQL Server 7.0.

Related Topics

Setting Configuration Options

sp_configure

sqlservr Application


Determining When SQL Server Causes a Windows NT Blue Screen

Infrequently, Microsoft® Windows NT® may either halt with a STOP screen or hard hang, during which the console is completely frozen and unresponsive. This is commonly called a blue screen. This may sometimes happen on a computer on which Microsoft SQL Server™ is running, or may coincide with a particular SQL Server operation such as the bcp utility, a long-running query, and so on.

Most of the time, this indicates an operating-system, device-driver, or hardware problem and should be pursued as such. The Windows NT user or kernel mode process isolation ensures that a user mode application problem does not cause the operating system to stop responding. This section presents exceptions to this and ways to determine whether to troubleshoot the problem at the system or application layer.

Sometimes the cause of a computer hard hang or blue screen may be a nonmaskable interrupt (NMI) error. This is sometimes visible as an error code stating NMI, parity check, or I/O parity check. NMI errors are almost always hardware. Usually they are caused by a memory failure; however, they can originate in other hardware subsystems such as video boards. Even if the NMI error happens only during certain SQL Server operations, and if the system passes initial hardware diagnostics, it should still be considered a hardware problem and pursued as such. It may be necessary to use a dedicated memory SIMM testing device, which can often find a transient memory error that eludes software-based diagnostics.

Processes exist on Windows NT in either user mode or kernel mode (sometimes called supervisor or privileged mode). In the Intel® x86 architecture, user mode maps to ring 3 and kernel mode to ring 0 of the 4-ring protection system. The x86 architecture has been carried forward with little change in all Intel and compatible processors to date, including the Pentium Pro and Pentium II. Processors such as the Alpha AXP typically have unprivileged and privileged modes as well.

Kernel mode is a privileged processor mode in which a thread has access to system-wide memory (including that of all user-mode processes) and to hardware. By contrast, user mode is a nonprivileged processor mode in which a thread can only access system resources by calling system services.

A user mode process cannot access kernel mode memory, or access memory of another user mode process. This is enforced by processor hardware, in conjunction with kernel mode data structures such as Page Tables. For more information, see the 80386 Programmer's Reference Manual, the 80386 System Software Writer's Guide, or equivalent Alpha AXP documentation.

As a result of this protection system, a user mode application generally cannot stop responding, cause a blue screen, or otherwise cause a failure in the Windows NT operating system. Such problems should be pursued primarily at the system layer as an operating-system, device-driver, or hardware issue.

While an application error cannot cause a failure in the operating system, an operating-system error can cause an application to stop responding. This is because of the general rule: Applications must call inward (to kernel mode), but the operating system can reference outward to user mode freely at any time. A microkernel-influenced architecture such as Windows NT may in turn dispatch certain work to a user-mode system process rather than perform the work in kernel mode. However, the overall principle remains the same: Processor hardware enforces process context isolation, which prevents one process from causing a failure in another, whether one or both are in user mode.

If a user mode application passes an invalid parameter in a Win32® API call, it is the responsibility of the operating system to validate this parameter. In very rare cases, passing an invalid parameter may cause a Windows NT blue screen error. However, this is an operating-system issue, and should be debugged and pursued as such.

Related Topics

bcp Utility


Winlogon Problem Caused by SQL Extensible Performance Counters

Current Microsoft® Windows NT® architecture stipulates that any extensible performance counters added by a service will run in the process context of the Windows NT Winlogon process. Because Winlogon is a vital component of the operating system, a bug or resource leak in any performance counter dynamic link library (DLL) may disrupt Winlogon, and hence the operating system. The Microsoft SQL Server™ extensible performance counter DLL is called Sqlctr70.dll, and it exports several SQL Server-specific objects from SQL Server to the operating system. You can use Windows NT Performance Monitor to monitor these objects.

Although it is very rare for Sqlctr70.dll to cause a Winlogon problem, you can expedite problem identification when pursuing a Windows NT failure or blue screen problem on a computer running SQL Server by renaming this DLL. This eliminates the use of SQL Server performance counters; however, you can still use Windows NT Performance Monitor to monitor SQL Server by using regular Windows NT performance counters (such as threads, process, memory, and so on).

If renaming Sqlctr70.dll fixes the problem, and if this is confirmed by reinstating and removing the DLL several times, the problem should be pursued as a SQL Server issue. Otherwise, it should be pursued as a system layer issue.


Resource Leak

If a resource leak continues for a long period of time, the operating system should return the appropriate return code to the application, which should log this. For example, if you receive operating-system error 8, "Not enough storage," the operating system should handle the situation by not granting further resource requests. However, a continued application resource leak may not be handled by the operating system under all conditions, resulting in a blue screen or operating-system or application failure.

Almost all resource leaks will manifest themselves as a gradual increase in consumption of some resource, such as handles, virtual memory, private bytes, and so on. Therefore, the easiest way to rule in or out a resource leak is to run Windows NT Performance Monitor and log all objects to a file. When the problem occurs, examine the logged performance data for signs of a leak. Some good counters to examine are: handle count, page file bytes, pool paged bytes, pool nonpaged bytes, private bytes, thread count, virtual bytes, and working set for each process running on the computer.

It is not necessary to classify certain values as normal or abnormal. Focus on identifying leaks by the continuous nature of the increase, not by the absolute value at a given time. Remember it is normal for the Windows NT Performance Monitor private bytes counter for Microsoft® SQL Server™ to start well below the configured min server memory setting value, and then increase with activity until it roughly approaches, but does not significantly exceed, that value.

If one of the logged Windows NT Performance Monitor counters continuously increases for the Sqlservr.exe process, and if reaching a certain value repeatedly coincides with a Microsoft Windows NT® blue screen or operating-system failure, it should be pursued temporarily as a Microsoft Windows® issue until the cause of the continuous SQL Server resource leak is understood. Otherwise, it should be pursued as a system layer problem.

Related Topics

Monitoring with Windows NT Performance Monitor

Setting Configuration Options

Server Memory Options

sp_configure


CPU Monopolization

If a process spawns high priority threads that are continuously in a runnable state, this process can dominate the computer and prevent the operating system from running. A properly configured Microsoft® SQL Server™ computer will not cause this problem. However, under some conditions, the operating system may appear to stop responding. For example, boosting the priority boost too high may drain resources from essential operating system and network functions, resulting in problems shutting down SQL Server or using other Microsoft Windows NT® tasks on the server. In general, you should leave priority boost setting at the default.

When pursuing an operating-system hang problem, ensure that the SQL Server configuration settings mentioned above are at their default values. Then, if the operating-system or application failure recurs, it should be pursued as a system layer problem.

Related Topics

priority boost Option

Setting Configuration Options

sp_configure


Troubleshooting Recovery

Every time Microsoft® SQL Server™ starts, recovery is performed on all system and user databases. The topics in this section focus on resolving performance and insufficient disk space problems related to recovery.


Recovery Performance

Recovery time is determined by how much work has been done since the last checkpoint, and by how much work has been done by all active transactions at the time of the server crash. Microsoft® SQL Server™ uses a configuration option named recovery interval to set the maximum number of minutes per database that SQL Server needs to recover databases. This recovery interval setting controls checkpoint frequency. For an online transaction processing (OLTP) system (using short transactions), recovery interval is the primary factor determining recovery time.

After installation, SQL Server sets this recovery interval setting to a default value of zero (0). As long as the recovery interval setting is at the default setting and long-running transactions are not present, recovery for each database should take approximately 1 minute or less. If long-running transactions were active at the time of the server crash, recovery time is controlled by the time it takes to rollback the effects of these transactions.

If recovery routinely takes significantly longer than 1 minute for a database, the recovery interval setting has a value of zero (0), and there are no long-running transactions to rollback, consider contacting your primary support provider to resolve the recovery performance problem.

Recovery reports progress (based on the virtual log files for a database). Recovery analyzes and scans the log at the beginning of recovery, since the last checkpoint. Based on the analysis phase, recovery estimates how much log will be read during recovery. The amount of log read is used to report recovery progress.

If the recovery interval setting is changed from the default value, database recovery takes that many times longer to complete. For example, if recovery interval is changed to 10, recovery would take approximately 10 times longer to complete than if recovery interval remained at the default setting of zero (0).

When growing the log, use larger chunks rather than small chunks to ensure a shorter startup time for SQL Server. The more small log chunks you have, the longer it takes SQL Server to initialize them.

If a long-running transaction is terminated, let the server finish the rollback process. If you are concerned about the length of the rollback process, ask your system administrator to confirm that activity is taking place on the server. Terminating the server process during the rollback of a long-running transaction results in long recovery time.

If you have a long-running transaction and a crash occurs during this transaction, SQL Server begins the recovery process. This may take some time. If you are concerned that this recovery process is taking too long and you believe it is halted, contact your system administrator.

Related Topics

recovery interval Option

Setting Configuration Options

sp_configure


Insufficient Disk Space

During recovery, it is a rare but possible occurrence for the server to require additional log or data space. If additional space is unavailable and either the log or data files cannot grow, the server:

  • Reports error message 9002 or 1105 in the Microsoft® SQL Server™ error log.

  • Marks the database as suspect.

  • Takes the database offline.

To resolve the 9002 error message and bring the database online

  1. Free disk space on any disk drive containing the log file for the related database. Freeing disk space allows the recovery system to grow the log file automatically.

  2. Reset the suspect status by executing sp_resetstatus.

  3. Run recovery by executing DBCC DBRECOVER (database).

    Or

  4. Free disk space on a different disk drive.

  5. Move the transaction log files with an insufficient amount of free disk space to the disk drive in Step 1.

  6. Detach the database by executing sp_detach_db.

  7. Attach the database by executing sp_attach_db, pointing to the moved files.

    Or

  • Add a log file to the suspect database and run recovery on the database by executing sp_add_log_file_recover_suspect_db.

To resolve the 1105 error message and bring the database online

  1. Free disk space on any disk containing a file in the filegroup mentioned in the 1105 error message. Freeing disk space allows the files in the filegroup to grow.

  2. Reset the suspect status by executing sp_resetstatus.

  3. Run recovery by executing DBCC DBRECOVER (database).

    Or

  4. Free disk space on a different disk drive.

  5. Move the data files in the filegroup with an insufficient amount of free disk space to the disk drive in Step 1.

  6. Detach the database by executing sp_detach_db.

  7. Attach the database by executing sp_attach_db, pointing to the moved files.

    Or

  • Add a data file to the suspect database and run recovery on the database by executing sp_add_file_recover_suspect_db.

Related Topics

ALTER DATABASE

CREATE DATABASE

DROP DATABASE

Error 1105

Error 9002

recovery interval Option

Resetting the Suspect Status

Server and Database Troubleshooting

Setting Configuration Options

sp_add_log_file_recover_suspect_db

sp_attach_db

sp_attach_single_file_db

sp_configure


Troubleshooting Replication

Note For immediate help in diagnosing your Replication problems, see the new online setup troubleshooter on the Product Support Web site. For more information, see Help with Replication.

Replication is a complex process, and although Microsoft® SQL Server™ is designed to detect and automatically correct problems, you may encounter problems when implementing your application. Most replication problems can be resolved by following a general troubleshooting approach. Other problems require a specific set of instructions.

General Approach to Replication Troubleshooting

You can begin troubleshooting replication problems by viewing the task history to determine which task failed and the reason for failure. Message details cannot always identify the problem, but can often provide an indicator of the issues, for example, connectivity problems, permissions restrictions, log full errors, and so on.

You can also begin troubleshooting using Replication Monitor to view the status of replication agents:

  1. In Replication Monitor, right-click the distribution agent serving the subscriber, then click Agent Properties. This allows you to view the job properties.

  2. Click the Steps tab, and then double-click Run Replication Agent.

  3. Cut the string from the command window.

  4. Paste the string into a console window, with Distrib.exe at the beginning, and with an extra parameter -Output.

  5. Review the output for indications of the problem.

You can increase the amount of history logged by a replication agent and use the additional information to get a more detailed understanding of actions and failures at each point in the replication process. Set the HistoryVerboseLevel to its highest value in the replication agent profile.

If you suspect there is a problem with data consistency in your application, use sp_table_validation to test for row count or checksum differences.

If you encounter one of the following problems, follow the procedures described. For current information about SQL Server replication and suggested solutions to problems, see www.microsoft.com/sql and www.microsoft.com/support.

Cannot Start a Replication Agent

A replication agent may not start because SQLServerAgent always calls the xp_logininfo stored procedure to validate that you still belong to your Microsoft Windows NT® user groups and to verify your login permissions to the server. The called stored procedure always makes a round trip to the domain controller to do this work. If the agent will not start, an error is returned. This error shows only in the Jobs folder. It never gets propagated to the monitoring node because the agents never actually run, so no notification can be returned. The workaround for the agent not starting is to use standard security or a local computer login as the owner for your jobs.

Cannot Start Another Replication Job

Some replication agents allow only one instance of a particular job to run at a time, for example, one log reader per publication database, one Distributor or Merge Agent per publication/Subscriber pair, one snapshot per publication, and so on. If these jobs fail due to connection failure, it is possible you will not be able to start another job until the network connection time-out is reached or you kill the system process ID (SPID) of the failed job.

Cannot Find Conflicts

If you receive a message that conflicts occurred during the merge process, you can use Replication Conflict Viewer to review the outcomes of the conflicts and to make changes to these outcomes. Make sure you connect to the correct server to view the conflicts. The location of the conflict table varies depending upon whether replication has been configured for centralized or decentralized logging of conflicts. Conflict reporting is usually centralized (the default). If centralized, the conflict table is stored at the Publisher and you must connect to the Publisher to view the conflicts. If decentralized, the conflict table is stored at either the Publisher or the Subscriber, depending upon who lost the conflicts.

Access Denied Reading or Writing Snapshot Files

If you cannot start Snapshot Agent, and receive an "Access Denied" message, run Dcomcnfg.exe. Click the Default Security tab, and then make sure the Windows NT account that SQL Server Agent runs under is enabled to have default access and launch permissions.

If the replication agents cannot access the snapshot folder on the Distributor, make sure that the folder is shared correctly. On a Distributor server running Windows NT, the snapshot folder defaults to using the <drive>$ share and a path of \\<computer>\<drive>$\Mssql7\Repldata.

On a Distributor server running Microsoft Windows® 95 or Windows 98, the snapshot folder defaults to using the <drive> without a share and a path of <drive>:\Mssql7\Repldata. If your application requires the ability to create pull subscriptions on a server running Windows 95 or Windows 98, you must change the snapshot folder to a network path accessible by replication agents running at the Publisher and Subscribers. You can change the local path to a network path by sharing the folder manually.

Replicating from SQL Server 7.0 to SQL Server 6.5

If you are attempting to replicate from SQL Server 7.0 to SQL Server 6.5 and receive an error message that MSreplication_ subscripions is an invalid object error, try the following procedures:

  1. Run Replp70.sql at the SQL Server 6.5 Subscriber.

  2. Run sp_addpublisher at the Subscriber. Make sure you have the syntax correct:
    sp_addpublisher 70 <publisher server name>, <NT account used by
Dist. agent>
  3. Register the SQL Server 6.5 Subscriber at the SQL Server 7.0 Enterprise Manager.

  4. Create a publication at the SQL Server 7.0 Publisher and perform a push subscription to the SQL Server 6.5 Publisher.

For more information about the replicating between different versions of SQL Server, see Replicating Between Different Versions of SQL Server in SQL Server Books Online for SQL Server 7.0.

Merge Agent or Distribution Agent Fails on Time-out

If the Merge Agent or Distribution Agent fails because of a time-out, increase the QueryTimeout value in the Merge Agent or Distribution Agent profile.

Merge Agent Fails While Enumerating Deletions at the Subscriber

If the Merge Agent fails while enumerating deletions at the Subscriber, examine the error details. This condition is often the result of a large number of deletes to process and a small QueryTimeout value. Increase the QueryTimeout value in the Merge Agent profile.

Errors Occur Applying Constraints During the Initialization of a Partitioned, Merge Publication at a Subscriber.

If errors occur when the snapshot of a partitioned merge publication is applied at a Subscriber, the publication filter may not be defining all of the data needed at the Subscriber to support the constraints referenced at the Subscriber. For example, if you have an EMPLOYEES table that contains a self-referencing constraint on the EMPLOYEES.SUPERVISOR_ID column, make sure your partitioned data set includes all of the supervisors for the employees in the partition as well.

Conflicts Occur When Merging Newly Inserted Rows That Contain Identity Columns

If conflicts occur when merging newly inserted rows that contain identity columns, use the Replication Conflict Viewer to determine the cause of the conflict. An insert conflict is usually caused by inconsistent enforcement of constraints between Publishers and Subscribers. Also, identity columns must be used with caution. You must assign each Subscriber that will insert new rows containing an identity a unique range of identity values.

Data Validation Appears to Fail

Data validation uses rowcounts and checksums to determine if data at the Subscriber has diverged from data at the Publisher. However, there are several conditions other than actual data divergence that could cause data validation to fail.

  • Checksum computes a 32-bit cyclic redundancy check (CRC) on the entire row image on the page. It does not check columns selectively and cannot operate on a view or vertical partition of the table. Also, the checksum skips the contents of text and image columns (by design).

  • When doing a checksum, the structure of the table must be identical between the two servers; that is, the tables must have the same columns created and existing in the same order, same data types and lengths, and same NULL/NOT NULL conditions. For example, if the Publisher did a CREATE TABLE, then an ALTER TABLE to add columns, but the script applied at the Publisher is a simple CREATE table, the structure is not the same. If you are not certain that the structure of the two tables is identical, look at syscolumns and confirm that the offset in each table is the same.

  • Floating point values are likely to generate checksum differences if character-mode bulk copy was used, which is the case if the publication has heterogeneous subscribers. These are due to minor and unavoidable differences in precision when doing conversion to and from character mode.

  • The custom resolver may not ensure data convergence because it does not handle all conflicts. For example, the custom resolver may only resolve downloads to the Subscriber and not uploads to the Publisher.

If you suspect something is wrong, first check conflict tables, error tables for and possible explanations. For example, if the Subscriber database or log is full, SQL Server may be unable to download all of the changes. SQL Server would log an error in the conflict table at the Publisher indicating that not all updates were processed at the Subscriber.

For example, the following FULL OPEN JOIN query uses OPENROWSET to identify differences between two tables.

Note You cannot use OPENROWSET on a server running Windows NT Authentication only.

SELECT authors.au_id AS Local_PK, remote.au_id AS Remote_PK,
(getchecksum(authors.au_id,1),0) AS Local_chksum,remchksum
FROM authors
FULL OUTER JOIN
OPENROWSET('SQLOLEDB','RONSOU4';'sa';'',"SELECT au_id,(getchecksum(NULL,1),0) AS remchksum FROM pubs.dbo.authors" ) AS remote
ON (authors.au_id=remote.au_id)
WHERE
-- Find rows with same primary key but different checksums
(getchecksum(authors.au_id,1),0) <> remchksum
OR
-- Find rows which do not exist on one side or the other
authors.au_id IS NULL OR remote.au_id IS NULL

If the query returns rowcount differences, comment out the checksums. The checksums are unnecessary at that point and are more resource intensive than rowcounts to execute.

For more information about data validation, see the Monitoring Data Validity and sp_table_validation topics in SQL Server Books Online for SQL Server 7.0

Related Topics

CHECK Constraints

How to monitor replication agent history (Enterprise Manager)

How to monitor replication agent session details (Enterprise Manager)

How to monitor replication alerts (Enterprise Manager)

IDENTITY (Property)

Monitoring Replication

Overview of Replication

Replication Conflict Viewer

sp_table_validation

Use the NOT FOR REPLICATION Option on the IDENTITY Property

xp_logininfo


Troubleshooting Statistics

When using statistics, you may encounter these problems:

  • When a table has a large number of indexes, and statistics are being either created or updated, you may receive this error:

Cannot create more than 250 indexes on a table.

  • Columns larger than 900 bytes cannot have statistics created on them.

  • Ensure that the query is using indexes by viewing the showplan output.

  • Indexes are ignored. Verify the statistics information by executing DBCC SHOW_STATISTICS.

  • Ensure there are no distribution page references in sysindexes.

Related Topics

CREATE STATISTICS

DBCC SHOW_STATISTICS

DROP STATISTICS

Error 1910

Maximum Capacity Specifications

sp_autostats

sysindexes

UPDATE STATISTICS


SQL Server Tools Troubleshooting

This section contains information about troubleshooting problems you may encounter when using other tools with Microsoft® SQL Server™.


Troubleshooting the Index Tuning Wizard

Here are some errors you may encounter when using the Index Tuning Wizard:

  • Communication error

    The connection to the server is broken or the server is offline.

  • Empty workload

    The trace file or script contains no SQL batch or RPC events.

  • Workload that cannot be parsed

    The trace file contains SQL batch or RPC events, but none that reference objects in the selected database.

  • Canceling index analysis

    When processing a large workload, canceling index analysis can take several minutes or more to complete processing.

  • Accepting index configuration

    After accepting the recommended index configuration for a large workload or database, final processing can take several minutes or more to complete.

  • Nonexisting objects

    Queries referencing temporary or other nonexisting objects cannot be tuned.

  • File error

    The Index Tuning Wizard was unable to open a file. Check to see if the workload file was locked by another user or process, or if the workload file was moved or deleted.

  • I/O error

    The Index Tuning Wizard encountered a problem writing to a work file. Increase the available space on the disk drive on which the system temp directory is located.

  • Insufficient memory error

    There was insufficient memory to run the Index Tuning Wizard. Run the Index Tuning Wizard on a computer other than the server, or increase the size of the operating-system paging file.

  • Missing index error

    Multiple users concurrently tuning a database may result in missing index errors. It is recommended that only one user tune a database at a time.

Related Topics

Analyzing a Query

Index Tuning Wizard

Maximum Capacity Specifications

Misc. Event Category

Rebuilding an Index


Troubleshooting SQL Mail with Exchange Server

Typically, errors in starting a SQL Mail session or sending mail from SQL Mail with Microsoft® Exchange Server fall into two categories: permissions problems and Exchange client setup problems. For more information about SQL Mail, see SQL Server Books Online for SQL Server 7.0.

Examine this list of items, in this order:

  1. Log on to Microsoft Windows NT® with the user account that will be used for the MSSQLServer service. This user account must be an administrator of the local computer and a domain account.

  2. Confirm that the Exchange Server client, Exchnge32.exe, or the Microsoft Outlook™ client, Outlook.exe, can connect to Exchange Server and that e-mail can be sent.

  3. Confirm that the Exchange Server profile used does not have a Personal Message Store (.pst).

  4. On the Services tab, confirm that the only services available are Microsoft Exchange Server and Personal Address Book, and then click the Delivery tab. Confirm that the selection in the Deliver To box is the mailbox on Exchange Server, which should have a name similar to "Mailbox - <Friendly User Name>" (where <Friendly User Name> is the name of the user who logged on to Windows NT in Step 1).

  5. To run SQL Mail with Exchange Server, the MSSQLServer service must be run under the same user account that logged on in Step 1. In Control Panel, double-click Services, select MSSQLServer service, and then click Startup.

  6. Confirm that the SQL Mail profile is correct. In SQL Server Enterprise Manager, expand the server, expand the Support Services folder, select SQL Mail, and then right-click. Click Properties, and then on the General tab, ensure that the profile name specified in the Profile name box is correct. If needed, click Test. The profile name must match the profile name used in Step 3.

  7. Test Microsoft® SQL Server™ access permissions to Exchange Server by executing xp_cmdshell, which executes with the same permissions as SQL Mail. Use this command to test connectivity to the server, assuming Exchange Server is located on a computer named "NTServer".
    xp_cmdshell "NET USE \\NTServer\IPC$"

    If this command fails, Step 3 was not completed correctly.

It should now be possible either to start SQL Mail automatically or to start SQL Mail manually using xp_startmail. When using xp_startmail, the profile can be replaced by replacing <Profile name> below with the profile name used in Step 3:

xp_startmail '<Profile name>',''

Related Topics

MAPI Error Messages

xp_cmdshell

xp_startmail


Troubleshooting SQL Server Profiler

Here are some problems you may encounter when using SQL Server Profiler:

  • If you do not see all SQL Server Profiler event classes on the Events tab of the trace definition property sheet, on the Tools menu, click Options. On the General tab, under Events, select All event classes.

  • If you do not see all SQL Server Profiler data columns on the Data Columns tab of the trace definition property sheet, on the Tools menu, click Options. On the General tab, under Events, select All data columns.

  • SQL Server Profiler can display the object name (instead of the object ID) if the Server Name and Database ID data columns also appear in your trace.

  • When setting filters, a blank include filter includes all items in the SQL Server Profiler output. A filter on a data column is not applied to event classes that do not populate that data column.

  • Because the SQL Server Profiler Extended Stored Procedures save trace queue definitions on the server rather than on the client, SQL Server Profiler is unable to edit or start a trace created originally with the extended stored procedures.

  • For security reasons, batches containing stored procedures with password arguments are not traced. Instead, an event is produced, which replaces the batch text with a comment.

  • In Microsoft® Windows® 95 and Windows 98, SQL Server Profiler does not accept client configuration changes until the SQL Server Profiler is closed and restarted.

  • Due to file locking incompatibilities, Microsoft Windows NT® cannot open trace or script files in a Windows 95 or Windows 98 shared directory.

  • SQL Server Profiler can incur problems accessing files on a remote computer if those files become unavailable.

Here are some common problems you may encounter when replaying a SQL Server Profiler trace:

  • Replay errors may occur when logins and users captured in the trace do not exist in the target database. If the logins and users exist in the database, they must have the same permissions as they did in the source (traced) database, and they must have the same password as the SQL Server Profiler user replaying the trace. For security reasons, Microsoft Windows NT authenticated logins cannot be impersonated.

  • Replay errors may occur when the database ID (DBID) of the target database is different from the DBID captured in the trace. To correct this problem, restore a backup of the master database of the source (traced) server onto the target server. Then, restore the user database or databases. As an alternative, the DBID data column can be removed from the trace and the default database set to the target database for each user captured in the trace.

  • Replay errors may occur when attempting to replay a trace against a database if it is in a different state thafrom the source (traced) database. Updates may fail if data is missing or changed.

  • Unexpected results may be returned, or replay errors may occur, if replaying a trace containing Session events (Connect, Disconnect, and Existing Connection, for example) and the Binary Data column has not been captured. For Session event classes, the Binary Data column contains information required to set ANSI and quoted identifiers.

  • System performance may degrade if replaying a trace that contains more concurrent connections than the replay computer can manage. In this case, the trace may be filtered by Application Name, SQL User Name, or another filter if one or more of these data columns were captured in the trace.

  • Replaying captured events containing the KILL statement may cause unexpected replay results; the SPID that is terminated may not exist or, if it does exist, the SPID may be assigned to a different user or connection than the one traced originally.

  • When replaying a trace file as fast as possible, SPIDs may become blocked, halting the progress of the replay. To free the blocked SPID and allow the trace to continue, kill the blocking SPID.

Related Topics

Monitoring with SQL Server Profiler

Tips for Using SQL Server Profiler


Troubleshooting SQL Server Query Analyzer

Here is a problem that you may encounter when using SQL Server Query Analyzer to execute a script:

  • Showplan does not return a plan for Transact-SQL statements referencing temporary objects. You can trace the SQL:BatchStarting and Execution Plan events in SQL Server Profiler while executing the Transact-SQL statements to see the plan.

Here are some problems that you may encounter when using SQL Server Query Analyzer to tune a database for a query:

  • Unable to recommend indexes because the query did not reference only tunable tables. This problem was caused by one or both of the following reasons:
    • The query did not reference any tunable tables.

    • The query or batch contained the USE statement.
  • No indexes suggested. This problem can be caused by any of these reasons:
    • The tables are very small.

    • Supporting indexes may already exist.

    • Only a clustered index would have improved performance.

      Keep in mind that SQL Server Query Analyzer will not recommend clustered indexes when tuning a single query.

  • Unable to parse query. This problem can be caused by any of these reasons:
    • The GO command after the query was selected for tuning. The GO command should be excluded from the selected query text for analysis.

    • The wrong database was selected for the query.

    • The text of the query selected for analysis cannot be parsed.

Related Topics

Analyzing a Query

GO

Using SQL Server Query Analyzer


Troubleshooting the Web Assistant Wizard

This topic describes how the Web Assistant Wizard handles HTML page generation using the When the SQL Server data changes scheduling option.

With the Web Assistant Wizard, you can generate an HTML file whenever the data changes for one or more tables by using the Schedule the Web Assistant Job dialog box and selecting When the SQL Server data changes. This is accomplished by building an INSERT, UPDATE, and DELETE trigger for each of the tables selected by the user. Any existing triggers are detected automatically by the Web Assistant Wizard and retained. Additional Transact-SQL statements are appended to the existing trigger code.

The trigger object built by the Web Assistant Wizard will have a name generated according to the following:

Web_tableObjectId_1 -> INSERT trigger
Web_tableObjectId_2 -> UPDATE trigger
Web_tableObjectId_4 -> DELETE trigger

For example, if the authors table from the pubs database is selected as one of the tables to be considered when the data changes, the three triggers generated by the Web Assistant Wizard will be: Web_16003088_1, Web_16003088_2, and Web_16003088_4 for the INSERT, UPDATE, and DELETE respectively (where 16003088 is the object ID corresponding to the authors table in the pubs database).

sp_depends does not enlist any of the Web Assistant Wizard generated triggers for a given table. You can use sp_helptrigger to return trigger information for the specified table for the current database.

Use the following steps to drop any of the triggers generated by the Web Assistant Wizard:

  1. Identify the object ID for the table in question:
    SELECT OBJECT_ID('tabName') tabObjId
  2. List all the triggers for this table object:
    USE master
GO
SELECT *
FROM sysobjects
WHERE name LIKE 'Web_tabObjId%'
GO
  3. Run the DROP TRIGGER command for each of the triggers you want to drop:
    DROP TRIGGER <Webtriggername>

Related Topics

DROP TRIGGER

OBJECT_ID

sp_depends

sp_helptrigger

sysobjects

Using the Web Assistant Wizard


Programming Troubleshooting

Problems reported by the Microsoft® SQL Server™ ODBC driver are not all related to ODBC errors. The driver is the interface between an ODBC application and all of the SQL Server components. All SQL Server errors are returned through the SQL Server ODBC driver. Diagnosing errors reported by the driver includes:

  • Diagnosing ODBC connection errors.

  • Diagnosing general ODBC errors.


Troubleshooting the SQL Server ODBC Driver

Troubleshooting the Microsoft® SQL Server™ ODBC driver should include a review of the following issues:

  • If applications prepare a lot of SQL, it is recommended that these clients release the SQL as soon as possible to free memory. For more information, see Prepared Execution in SQL Server Books Online for SQL Server 7.0.

  • Few or no servers appear in the Register Server Wizard in SQL Server Enterprise Manager after either clicking Next in the Welcome dialog box, or executing osql-L.

    Microsoft Windows NT® enumerates servers, but Microsoft Windows® 95 and Windows 98 do not. On Windows 95 and Windows 98, the only servers enumerated either by using the Register Server Wizard or by executing osql-L are those servers configured explicitly using the Client Network Utility.

    Windows NT enumerates servers by network broadcast, listening for a fixed time period. Only those servers either added explicitly or those receiving the broadcast and replying within the specified time limit are enumerated.

    Therefore, on a Windows NT server, it is possible to see a large list of enumerated servers at one point in time, and then see a smaller list of enumerated servers just a few seconds later. This absence of enumerated servers can be caused by one or more temporarily busy or unavailable network computers.

  • On Windows 95 and Windows 98, a connection cannot be established to any ODBC application if the Shared Memory Net-Library file named Dbmsshrn.dll is either renamed or deleted. This Shared Memory Net-Library file is required for local connections.

  • All driver-specific connection attributes are reset when an application uses connection pooling. After a connection is complete, an application using connection pooling must set all driver-specific connection attributes.

  • To eliminate the row count messages from DML statements inside a procedure, use SET NOCOUNT ON as the first statement in the procedure.

  • Character and binary parameters are padded to the size specified in SQLBindParameter. To disable, clear the AnsiNPW check box.

  • The code page of the server must be installed on the client workstation unless automatic translation is disabled.

  • Parameters must be specified as SQL_PARAM_INPUT, unless the parameters are used with a stored procedure and declared as OUTPUT parameters.

  • When a SQL Server ODBC driver version 2.65 or earlier is used and connected to a server running SQL Server 7.0, the server classifies the application as a pre-SQL Server 7.0 client and does not support certain features introduced in SQL Server 7.0. For more information, see Connecting Early Version Clients to SQL Server 7.0 in SQL Server Books Online for SQL Server 7.0.

Related Topics

Programming ODBC SQL Server Applications

Programming Stored Procedures

SQLBindParameter

SQLSTATE Messages

Help with Connectivity


Diagnosing ODBC Connection Errors

This topic discusses how to diagnose issues that may arise when connecting to Microsoft® SQL Server™ using the SQL Server ODBC driver.

  • A connection attempt using an ODBC data source fails and a call to SQLDiagRec() returns:
    szSqlState = "IM002", *pfNativeError = 0,
szErrorMsg="[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified"

    The ODBC driver manager could not find the ODBC data source. Make sure the data source name was given correctly. Also make sure the data source name was defined using the same Microsoft Windows® account the application is running under, or it is a system data source. If the application is running as a Microsoft Windows NT® service, the data source must be a system data source.

    For more information, see Adding a Data Source in SQL Server Books Online for SQL Server 7.0.

  • A connection attempt fails and a call to SQLError() returns:
    szSqlState = "IM003", *pfNativeError = 0,
szErrorMsg="[Microsoft][ODBC Driver Manager] specified driver could not be loaded"

    The driver manager count not load the driver DLL successfully, Sqlsrv32.dll. Make sure a valid version of Sqlsrv32.dll is in the client's path.

  • A connection attempt fails and a call to SQLError () returns:
    szSqlState = "S1000", *pfNativeError = 126,
szErrorMsg="[Microsoft][ODBC Driver Manager] Unable to load communication module. Driver has not been correctly installed."

    The SQL Server driver could not load the SQL Server client Net-Library. Verify that the ODBC data source specifies a valid Net-Library name. Verify that a valid version of the Net-Library DLL is in the client's path. This may also occur if the DLLs and files making up the underlying network protocol stack, such as Novell's SPX/IPX, or a TCP/IP protocol stack, are not installed properly. Verify the components with the network administrator, or reinstall the client network components.

  • For other network connectivity errors, SQLDiagRec() will return errors in which the szErrorMsg string has this format:
    [Microsoft][ODBC SQL Server Driver][Net-Libraryname]

    Net-Libraryname is the display name of a SQL Server client Net-Library (for example, Named Pipes, Shared Memory, Multiprotocol, TCP/IP Sockets, NWLink IPX/SPX, or Banyan VINES). The remainder of the error messages contains the Net-Library function called and the function called in the underlying network API by the TDS function. The pfNative error code returned with these errors is the error code from the underlying network protocol stack. Work with the network administrator or your SQL Server support vendor to determine a likely cause for the network error.


Diagnosing General ODBC Errors

This topic discusses how to diagnose issues that may arise when using the Microsoft® SQL Server™ ODBC Driver.

  • The szErrorMsg string returned by SQLDiagRec() starts with:
    "[Microsoft][ODBC SQL Server driver][DBMSxxxx]"

    If DBMSxxxx is the name of a SQL Server Client Net-Library, the problem is a connectivity or network problem. For more information, see Diagnosing ODBC Connection Errors.

  • The szErrorMsg string returned by SQLDiagRec() starts with:
    "[Microsoft][ODBC SQL Server driver][SQL Server]"

    The error is coming from SQL Server. The pfNative variable returned by SQLError() is the SQL Server error code. Follow the directions for this error number in ODBC Error Message Format. Also, you should review the problem with the database administrator.

  • If you are experiencing difficulties with stored procedures that reference temporary tables on SQL Server 6.0 or later, make sure that the CREATE TABLE statements for the temporary tables specify NULL or NOT NULL for each column. For more information, see CREATE PROCEDURE in SQL Server Books Online for SQL Server 7.0.

  • If you are experiencing differences in behavior between DB-Library and ODBC clients, or in ODBC clients upgraded from earlier versions of SQL Server, these could be due to different options set by the SQL Server ODBC driver. For more information, see Effects of SQL-92 Options in SQL Server Books Online for SQL Server 7.0.

  • If you are experiencing Microsoft Access conformance errors, or if calls to the ODBC catalog API functions are failing, ensure the right version of Instcat.sql was run in the target server. For more information, see Upgrading the Catalog Stored Procedures (ODBC) in SQL Server Books Online for SQL Server 7.0.

  • If you are experiencing syntax errors from either SQL Server:
    szSqlState = "37000", *pfNativeError = 170,
szErrorMsg="[Microsoft][ODBC SQL Server Driver][SQL Server]
               Line 1: Incorrect syntax near '*'."

    or from the ODBC SQL Server Driver, you need to determine if the problem is with the SQL statements given to the SQL Server ODBC driver by the application, or with the Transact-SQL statements generated by the driver.

    Use the ODBC trace to see the SQL statements passed from the application to the SQL Server ODBC driver. The ODBC trace is activated from the ODBC icon in Control Panel.

    If the trace shows that the SQL statements coming from the application are not using valid Transact-SQL or ODBC SQL syntax, diagnose the application.

    If the trace shows that the application is passing valid Transact-SQL or ODBC SQL statements to the driver, use SQL Server Profiler to trace the Transact-SQL statements sent from the SQL Server ODBC driver to SQL Server. For more information, see Monitoring with SQL Server Profiler in SQL Server Books Online for SQL Server 7.0.


Troubleshooting SQL-DMO

After a successful installation of the Microsoft® SQL Server™ version 7.0 client utilities, SQL-DMO files can be found in these locations with these names:

  • In the \Mssql7\Binn directory:
    • Sqldmo.dll

    • Sqldmo.Hlp

    • Sqlrsld.dll

    • Sqlsvc.dll

    • Sqlwid.dll

    • W95scm.dll
  • In the \Mssql7\Binn\Resources\<language> directory (where <language> is the installed language number.) For the installed language of U.S. English, for example, the language number is 1033. Therefore, these files would be in the \Mssql7\Binn\Resources\1033 directory:
    • Sqldmo.rll

    • Sqlsvc.rll
  • In the %SystemRoot%\system32 directory, Sqlwoa.dll.

In addition to the above files, a successful installation of SQL-DMO includes:

  • ODBC version 3.5

  • SQL Server ODBC driver version 3.70

  • Odbcbcp.dll

If the installation of client utilities fails, it is possible that not all SQL-DMO files will be present or some may not be registered properly.

To register the SQL-DMO components

  • From \Mssql7\Binn\Resources\<language> directory, execute:
    \MSSQL7\BINN\REGSVR32 SQLDMO.RLL
  • From any directory, execute:
    \MSSQL7\BINN\REGSVR32.EXE \MSSQL7\BINN\resources\1033\SQLDMO.RLL
SQL Namespace

To use SQL Namespace (SQL-NS), you must have these files in these locations with these names and the SQL-DMO files mentioned above:

  • In the \Mssql7\Binn directory:
    • Semcomn.dll

    • Sfc.dll

    • Sqlgui.dll

    • Sqlns.dll

    • Sqlresld.dll

    • Sqlsvc.dll

    • Sqlwid.dll
  • In the \Mssql7\Binn\Resources\<language> directory (where <language> is the installed language number.) For the installed language of U.S. English, for example, the language number is 1033. Therefore, these files would be in the \Mssql7\Binn\Resources\1033 directory:
    • Semcomn.rll

    • Sfc.rll

    • Sqlgui.rll

    • Sqlns.rll

    • Sqlsvc.rll
  • In the %SystemRoot%\system32 directory, Sqlwoa.dll.

If the installation of client utilities fails, it is possible that not all SQL-NS files will be present or some may not be registered properly.

To register the SQL-NS components

  • From \Mssql7\Binn\Resources\<language> directory, execute:
    \MSSQL7\BINN\REGSVR32 SQLNS.RLL
  • From any directory, execute:
    \MSSQL7\BINN\REGSVR32.EXE \MSSQL7\BINN\resources\1033\SQLNS.RLL

Related Topics

Developing SQL-DMO Applications

Overview of Installing SQL Server

SQL-NS Reference


Error Messages

When Microsoft® SQL Server™ encounters a problem, it either writes a message from the sysmessages system table to the SQL Server error log and the Microsoft® Windows NT® application log, or sends a message to the client, depending on the severity level.

Error messages can be either returned by SQL Server when encountering a problem or produced manually using the RAISERROR statement.

The RAISERROR statement provides centralized error message management. RAISERROR can retrieve an existing entry from sysmessages, or it can use a hard-coded (user-defined) message. When RAISERROR returns a user-defined error message, it also sets a system variable to record that an error has occurred. The message can include C PRINTF-style format strings which are filled with arguments specified by RAISERROR at run time. After it is defined, the message is sent back to the client as a server error message.

Whether returned by SQL Server or through the RAISERROR statement, each message contains:

  • A message number which uniquely identifies the error message.

  • A severity level which provides an indication of the type of problem.

  • An error state number which identifies the source from which the error was issued (if the error can be issued from more than one place).

  • A message which states the problem and sometimes a possible solution to fixing it.

For example, if you access a table that does not exist:

SELECT *
FROM bogus

The error message sent to the client looks something like this:

Server: Msg 208, Level 16, State 1

Invalid object name 'bogus'.

You can view the list of SQL Server error messages by querying the sysmessages table in the master database.

For more information about sysmessages, see System Error Messages.

Related Topics

RAISERROR

Using RAISERROR


Error Message Formats

All of the Microsoft® SQL Server™ components can issue informational, warning, or error messages to applications. Most SQL Server messages returned to applications have these parts:

  • Error number

    A one-to-five-digit number that identifies the message. Error numbers for user-defined messages can contain more digits.

  • Description

    A Unicode string that contains information about the condition that generated the message.

  • Severity level

    A one-or two-digit number that indicates the severity of the error condition.

  • State

    A one-to three-digit number with a maximum value of 127 which indicates to Microsoft support engineers and developers the location in the SQL Server code that generated the message:

  • Line number

    The line number within the batch or stored procedure that contains the statement that generated the message.

    Line number can also be within the text of the stored procedure that is being executed.

The error numbers, descriptions, and severity levels for most SQL Server messages are stored in master.dbo.sysmessages. The state and line numbers are generated dynamically by the code issuing the message.

Messages raised in the client Net-Libraries, the Microsoft OLE DB Provider for SQL Server, or the SQL Server ODBC driver do not have some of these message parts.

To see an example of an error message, execute this statement:

SELECT * FROM ThisObjectDoesNotExist

This statement raises an error with these parts:

Error number: 208

Severity level: 16

State: 1

Line: 1

Description: Invalid object name 'ThisObjectDoesNotExist'.

All of the data APIs used by applications to access SQL Server return the error number and description. Not all of the APIs return the severity level, state, or line number. The OLE DB Provider for SQL Server and the SQL Server ODBC driver return these parts only if an OLE DB or ODBC application has been written to use SQL Server-specific diagnostic features that are exposed by the provider and driver.


Error Message Numbers and Descriptions

A message number uniquely identifies each error message and the error message text describes the problem. The error message text often includes placeholders for information (such as object names) to be inserted in the error message when it is displayed.

In the description column of the sysmessages table, a percent sign (%) followed by a character serves as a placeholder; the specific data is supplied when the error message is generated. The notation %d is a placeholder for a number; %ls (or %.*ls) is a placeholder for a string. For example, the actual error message displayed for error 105 might be:

Unclosed quote before the character string %.*ls.

When you report an error to your primary support provider, it is important to include error numbers, error states, object types, and object names. Otherwise, it can be difficult and time-consuming for the support provider to render assistance in resolving the error message.

Related Topics

Reporting Errors to Your Primary Support Provider

sysmessages


Error Message Severity Levels

The severity level of an error message provides an indication of the type of problem that Microsoft® SQL Server™ has encountered.

Messages with a severity level of 10 are informational messages and indicate problems caused by mistakes in the information you have entered. Severity levels from 11 through 16 are generated by the user, and can be corrected by the user.

Severity levels from 17 through 25 indicate software or hardware errors. You should inform the system administrator whenever problems that generate errors with severity levels 17 and higher occur. The system administrator must resolve these errors and track their frequency. When a level 17, 18, or 19 error occurs, you can continue working, although you might not be able to execute a particular statement.

The system administrator should monitor all problems that generate severity levels from 17 through 25 and print the error log which contains information to backtrack from the error.

If the problem affects an entire database, you can use DBCC CHECKDB (database consistency checker) to determine the extent of the damage. DBCC may identify some objects that must be removed and will optionally repair the damage. If damage is extensive, the database might have to be restored.

When specifying user-defined error messages with RAISERROR, use error message numbers greater than 50000 and severity levels from 0 through 18. Only system administrators can issue RAISERROR with a severity level from 19 through 25.

Severity Levels 0 through 19

Error messages with a severity level of 10 are informational. Error messages with severity levels from 11 through 16 are generated by the user and can be corrected by the user. Severity levels from 17 and 18 are generated by resource or system errors; the user's session is not interrupted.

Using sp_addmessage, user-defined messages with severities from 1 through 25 can be added to sysmessages. Only the system administrator can add messages with severities from 19 through 25.

Error messages with severity levels 17 and higher should be reported to the system administrator.

Severity Level 10: Status Information

Severity level 10 is an informational message and indicates a problem caused by mistakes in the information you have entered. Severity level 0 is not visible in SQL Server 7.0.

Severity Levels 11 through 16

These messages indicate errors that can be corrected by the user.

Severity Level 17: Insufficient Resources

These messages indicate that the statement caused SQL Server to run out of resources (such as locks or disk space for the database) or to exceed some limit set by the system administrator.

Severity Level 18: Nonfatal Internal Error Detected

These messages indicate that there is some type of internal software problem, but the statement finishes, and the connection to SQL Server is maintained. For example, a level 18 message occurs when the SQL Server query processor detects an internal error during query optimization.

The system administrator should be informed every time a severity level 18 message occurs.

Severity Level 19: SQL Server Error in Resource

These messages indicate that some nonconfigurable internal limit has been exceeded and the current batch process is terminated. Level 19 errors occur rarely; however, they must be corrected by the system administrator or your primary support provider.

The administrator should be informed every time a severity level 19 message occurs.

Severity Levels 20 through 25

Severity levels from 20 through 25 indicate system problems. These are fatal errors, which means that the process (the program code that accomplishes the task specified in your statement) is no longer running. The process freezes before it stops, records information about what occurred, and then terminates. The client connection to SQL Server closes, and depending on the problem, the client might not be able to reconnect.

Error messages with a severity level of 19 or higher stop the current batch. Errors messages with a severity level of 20 or higher are considered fatal errors and terminate the client connection. Errors messages in this range may affect all of the processes in the database, and may indicate that a database or object is damaged. Error messages with a severity level from 19 through 25 are written to the error log.

Severity Level 20: SQL Server Fatal Error in Current Process

These messages indicate that a statement has encountered a problem. Because the problem has affected only the current process, it is unlikely that the database itself has been damaged.

Severity Level 21: SQL Server Fatal Error in Database (dbid) Processes

These messages indicate that you have encountered a problem that affects all processes in the current database. However, it is unlikely that the database itself has been damaged.

Severity Level 22: SQL Server Fatal Error Table Integrity Suspect

These messages indicate that the table or index specified in the message has been damaged by a software or hardware problem.

Level 22 errors occur rarely; however, if you should encounter one, run DBCC CHECKDB to determine if other objects in the database are also damaged. It is possible that the problem is in the cache only and not on the disk itself. If so, restarting SQL Server corrects the problem. To continue working, you must reconnect to SQL Server. Otherwise, use DBCC to repair the problem. In some cases, it may be necessary to restore the database.

If restarting does not help, the problem is on the disk. Sometimes the problem can be solved by destroying the object specified in the error message. For example, if the message tells you that SQL Server has found a row with a length of 0 in a nonclustered index, delete the index and rebuild it.

Severity Level 23: SQL Server Fatal Error: Database Integrity Suspect

These messages indicate that the integrity of the entire database is suspect due to damage caused by a hardware or software problem.

Level 23 errors occur rarely; however, if you should encounter one, run DBCC CHECKDB to determine the extent of the damage. It is possible that the problem is in the cache only and not on the disk itself. If so, restarting SQL Server corrects the problem. To continue working, you must reconnect to SQL Server. Otherwise, use DBCC to repair the problem. In some cases, it may be necessary to restore the database.

Severity Level 24: Hardware Error

These messages indicate some type of media failure. The system administrator might have to reload the database. It might also be necessary to call your hardware vendor.

Related Topics

Backing Up and Restoring Databases

DBCC

DBCC CHECKDB

Setting Configuration Options

sp_configure


ADO Error Message Format

The ADO specification defines Error objects in an Errors collection. Each Error object holds a message from the underlying provider. ADO does not provide for provider-specific diagnostic information. ADO and the Microsoft OLE DB Provider for SQL Server map the parts of Microsoft® SQL Server™ messages into these ADO Error object properties:

  • Description

    Contains the SQL Server message description, usually from the description column in master.dbo.sysmessages.

  • SQLState

    Contains the five-character SQLSTATE code generated by the OLE DB Provider for SQL Server.

  • NativeError

    Contains the SQL Server error number. For example, if a statement raises a SQL Server error 170 (syntax error), 170 is returned in NativeError.

Related Topics

Errors Collection and Error Object


OLE DB Error Message Format

OLE DB applications receive Microsoft® SQL Server™ messages in two ways:

  • Call the OLE DB ISQLErrorInfo::GetSQLInfo function.

  • Call the provider-specific ISQLServerErrorInfo::GetErrorInfo function.

ISQLErrorInfo::GetSQLInfo returns the SQL Server error numbers from master.dbo.sysmessages as the plNativeError parameter and the SQLSTATE value as the pbstrSQLState parameter. These SQLSTATE codes are not related to any of the parts of a SQL Server message. The Microsoft OLE DB Provider for SQL Server generates the appropriate SQLSTATE code anytime it returns a message to an application. The SQLSTATE codes generated by the OLE DB Provider for SQL Server are same as the five-character SQLSTATE codes defined in the ODBC specification. For ISQLErrorInfo::GetSQLInfo, pbstrSQLState may be NULL when the error is not produced by SQL Server.

Both the OLE DB Provider for SQL Server and the Microsoft OLE DB Provider for ODBC support the ISQLErrorInfo interface.

The provider-specific ISQLServerErrorInfo interface returns more detail about a SQL Server error. The ISQLServerErrorInfo interface exposes one member function, GetErrorInfo. The function returns a pointer to a pointer to an SSERRORINFO structure and a pointer to a string buffer. The pointer to pointer to SSERRORINFO structure is NULL when the error is not produced by SQL Server.

The SQL Server message parts map to members of SSERRORINFO structure as described below:

pwszMessage

Contains the SQL Server error description.

lNative

Contains the SQL Server error number.

bState

Contains the SQL Server error state.

bClass

Contains the severity of the SQL Server error condition.

wLineNumber

Contains the line number of the stored procedure on which the error occurred.

Related Topics

Information in OLE DB Error Interfaces


ODBC Error Message Format

ODBC drivers return messages to applications as diagnostic records. An application can call the SQLGetDiagRec and SQLGetDiagField functions to retrieve these diagnostic records. The Microsoft® SQL Server™ ODBC driver maps SQL Server message parts into these standard ODBC diagnostic record fields:

SQLSTATE

The ODBC specification defines a set of five-character codes called SQLSTATE codes that identify the conditions generating the message. These SQLSTATE codes are not related to any of the parts of a SQL Server message. The SQL Server ODBC driver generates the appropriate SQLSTATE code anytime it returns a message to an application.

pfNative

The SQL Server ODBC driver returns the SQL Server error number as the ODBC pfNative field. For example, if a statement raises a SQL Server error 170 (syntax error), the ODBC driver returns 170 in pfNative.

MessageText

The SQL Server ODBC driver returns the SQL Server error description as the MessageText field in an ODBC diagnostic record. The ODBC specification defines a series of headers for the MessageText field that indicates the component that issued the message:

  • [Microsoft][ODBC Driver Manager]

    These messages are issued by the ODBC Driver Manager.

  • [Microsoft][ODBC Cursor Library]

    These messages are issued by the ODBC client cursor library.

  • [Microsoft][ODBC SQL Server Driver]

    These messages are issued by the SQL Server ODBC driver. If there are no other nodes with the name of either a Net-Library or SQL Server installation, then the message was issued by the driver.

  • [Microsoft][ODBC SQL Server Driver][Net-Libraryname]

    These messages are issued by the SQL Server Net-Library, where Net-Libraryname is the display name of a SQL Server client Net-Library (for example, Named Pipes, Shared Memory, Multiprotocol, TCP/IP Sockets, NWLink IPX/SPX, or Banyan VINES).

  • [Microsoft][ODBC SQL Server Driver][SQL Server]

    These messages are issued by SQL Server. The remainder of the error message is the description from SQL Server, usually from master.dbo.sysmessages.

The ODBC specification allows ODBC drivers to define driver-specific fields in ODBC diagnostic records. The SQL Server ODBC driver maps SQL Server message parts into these SQL Server ODBC driver-specific diagnostic fields:

SQL_DIAG_SS_SEVERITY.

Contains the SQL Server severity level.

SQL_DIAG_SS_MSGSTATE.

Contains the SQL Server state. It is not related to the ODBC SQLSTATE code.

SQL_DIAG_SS_LINE.

Contains the number of the line containing the SQL statement generating the message.

SQL_DIAG_SS_PROCNAME.

Contains the name of the stored procedure generating the message, if appropriate.

SQL_DIAG_SS_SRVNAME.

Contains the name of the server from which the message came.

Related Topics

Handling Errors and Messages


Embedded SQL for C Error Message Format

The errors and messages are returned to the application in an SQLCA data structure. The Microsoft® SQL Server™ message parts map to fields in SQLCA data structure as described below:

sqlerrmc

Contains text of the error message.

sqlerrd[1]

Contains the SQL Server error number.

sqlerrd[2]

Contains the SQL Server severity level.

Sqlstate

Contains the SQLSTATE run-time error codes as defined in Embedded SQL for C. These SQLSTATE codes are not related to any of the parts of a SQL Server message.


DB-Library Error Message Format

DB-Library returns Microsoft® SQL Server™ errors and messages to call-back functions written by the application programmer.

The application programmer uses the dberrorhandle function to give DB-Library the address of the call-back function that handles the errors. When DB-Library determines that an error has occurred, it calls the call-back function identified by dberrorhandle. DB-Library passes the SQL Server error information into the parameters of the call back function as described below:

severity

Contains the severity of the error.

dberr

Contains the SQL Server error number.

dberrstr

Contains the description of the SQL Server error.

The application programmer uses the dbmsghandle function to give DB-Library the address of the call-back function that handles the messages. When DB-Library receives an informational message from SQL Server, it calls the call-back function identified by dbmsghandle.

DB-Library passes the SQL Server message information into the parameters of the call-back function as described below:

msgno

Contains the error number identifying the message.

msgstate

Contains the SQL Server message state.

severity

Contains the severity of the error condition.

msgtext

Contains the description of the SQL Server message.

srvname

Contains the server name that generated the message.

procname

Contains the stored procedure name that generated the message.

line

Contains the line number in the stored procedure or the command batch that generated the message.

DB-Library calls the application error handler and message handler functions asynchronously as packets containing messages and errors are received from the server. This means DB-Library applications may receive errors and messages in a slightly different sequence from applications using either the OLE DB Provider for SQL Server or the SQL Server ODBC Driver.


Messages Returned by SQL Server 7.0 Utilities

All of the Microsoft® SQL Server™ version 7.0 utilities use ODBC except for the isql command prompt utility. This has two effects on the way error messages are displayed by the ODBC-based utilities:

  • The error messages may have leading ODBC headers built into the description. These headers identify the component raising the error. The osql command prompt utility returns the ODBC headers. SQL Server Query Analyzer defaults to removing the ODBC headers, but users can set a connection option so that these are returned.

    For example, isql returns the error 208 description as:

Invalid object name 'ThisObjectDoesNotExist'.

osql includes the ODBC headers in the description:

[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'ThisObjectDoesNotExist'.

The presence of the ODBC headers in the message does not necessarily indicate that the problem is in the ODBC components. The SQL Server ODBC driver includes these headers in messages from all components. For more information about how to determine the component raising the error, see ODBC Error Message Format.

  • Errors raised within the SQL Server ODBC driver have only a description. They have no error number, state, severity level, or line number. For example, if the following statement is executed in SQL Server Query Analyzer, the SQL Server ODBC driver itself raises a syntax error:
    { CLL sp_who }

    Because the error is generated by the driver, the only message part displayed by SQL Server Query Analyzer is the description:

[Microsoft][SQL Server ODBC Driver]Syntax error or access violation

Related Topics

isql Utility

osql Utility

sysmessages


Error Message Descriptions

The following topics contain system error message descriptions and user actions for specific system errors.


System Error Messages

The master.sysmessages table contains one row for each system error or warning that can be returned by Microsoft® SQL Server™. These are the columns in the sysmessages table.

Column name | Data type | Description
error | int | Unique error number
severity | smallint | Severity level of the error
dlevel | smallint | Reserved. For internal use only
description | nvarchar(255) | Explanation of the error with placeholders for parameters
mslangid | smallint | System message group ID

These variables appear in the error message text provided with the system error message descriptions.

Symbol | Meaning
%d, %ld, or %D | Decimal integer
%x | Hexadecimal number
%ls or %.*ls | Character string
%S_type | SQL Server -defined structure
%c | Single character
%lf | Double floating-point number


Errors 1 - 999

Error | Severity | Description
1 | 10 | Version date of last upgrade: 10/11/90.
21 | 10 | Warning: Fatal error %d occurred at %S_DATE. Note the error and time, and contact your system administrator.
102 | 15 | Incorrect syntax near '%.*ls'.
103 | 15 | The %S_MSG that starts with '%.*ls' is too long. Maximum length is %d.
104 | 15 | ORDER BY items must appear in the select list if the statement contains a UNION operator.
105 | 15 | Unclosed quotation mark before the character string '%.*ls'.
106 | 16 | Too many table names in the query. The maximum allowable is %d.
107 | 15 | The column prefix '%.*ls' does not match with a table name or alias name used in the query.
108 | 15 | The ORDER BY position number %ld is out of range of the number of items in the select list.
109 | 15 | There are more columns in the INSERT statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.
110 | 15 | There are fewer columns in the INSERT statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.
111 | 15 | '%ls' must be the first statement in a query batch.
112 | 15 | Variables are not allowed in the %ls statement.
113 | 15 | Missing end comment mark '*/'.
114 | 15 | Browse mode is invalid for a statement that assigns values to a variable.
116 | 15 | Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.
117 | 15 | The %S_MSG name '%.*ls' contains more than the maximum number of prefixes. The maximum is %d.
118 | 15 | Only members of the sysadmin role can specify the %ls option for the %ls statement.
119 | 15 | Must pass parameter number %d and subsequent parameters as '@name = value'. After the form '@name = value' has been used, all subsequent parameters must be passed in the form '@name = value'.
120 | 15 | The select list for the INSERT statement contains fewer items than the insert list. The number of SELECT values must match the number of INSERT columns.
121 | 15 | The select list for the INSERT statement contains more items than the insert list. The number of SELECT values must match the number of INSERT columns.
123 | 15 | Batch/procedure exceeds maximum length of %d characters.
124 | 15 | CREATE PROCEDURE contains no statements.
125 | 15 | Case expressions may only be nested to level %d.
128 | 15 | The name '%.*ls' is not permitted in this context. Only constants, expressions, or variables allowed here. Column names are not permitted.
129 | 15 | Fillfactor %d is not a valid percentage; fillfactor must be between 1 and 100.
130 | 16 | Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
131 | 15 | The size (%d) given to the %S_MSG '%.*ls' exceeds the maximum. The largest size allowed is %d.
132 | 15 | The label '%.*ls' has already been declared. Label names must be unique within a query batch or stored procedure.
133 | 15 | A GOTO statement references the label '%.*ls' but the label has not been declared.
134 | 15 | The variable name '%.*ls' has already been declared. Variable names must be unique within a query batch or stored procedure.
135 | 15 | Cannot use a BREAK statement outside the scope of a WHILE statement.
136 | 15 | Cannot use a CONTINUE statement outside the scope of a WHILE statement.
137 | 15 | Must declare the variable '%.*ls'.
138 | 15 | Correlation clause in a subquery not permitted.
139 | 15 | Cannot assign a default value to a local variable.
140 | 15 | Can only use IF UPDATE within a CREATE TRIGGER statement.
141 | 15 | A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations.
142 | 15 | Incorrect syntax for definition of the '%ls' constraint.
143 | 15 | A COMPUTE BY item was not found in the order by list. All expressions in the compute by list must also be present in the order by list.
144 | 15 | Cannot use an aggregate or a subquery in an expression used for the group by list of a GROUP BY clause.
145 | 15 | ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
146 | 15 | Could not allocate ancillary table for a subquery. Maximum number of tables in a query (%d) exceeded.
147 | 15 | An aggregate may not appear in the WHERE clause unless it is in a subquery contained in a HAVING clause or a select list, and the column being aggregated is an outer reference.
148 | 15 | Incorrect time syntax in time string '%.*ls' used with WAITFOR.
149 | 15 | Time value '%.*ls' used with WAITFOR is not a valid value. Check date/time syntax.
150 | 15 | Both terms of an outer join must contain columns.
151 | 15 | '%.*ls' is an invalid money value.
153 | 15 | Invalid usage of the option %.*ls in the %ls statement.
154 | 15 | %S_MSG is not allowed in %S_MSG.
155 | 15 | '%.*ls' is not a recognized %ls option.
156 | 15 | Incorrect syntax near the keyword '%.*ls'.
157 | 15 | An aggregate may not appear in the set list of an UPDATE statement.
159 | 15 | For DROP INDEX, you must give both the table and the index name, in the form tablename.indexname.
160 | 15 | Rule does not contain a variable.
161 | 15 | Rule contains more than one variable.
163 | 15 | The compute by list does not match the order by list.
164 | 15 | GROUP BY expressions must refer to column names that appear in the select list.
165 | 16 | Privilege %ls may not be granted or revoked.
166 | 15 | '%ls' does not allow specifying the database name as a prefix to the object name.
167 | 16 | Cannot create a trigger on a temporary object.
168 | 15 | The %S_MSG '%.*ls' is out of the range of computer representation (%d bytes).
169 | 15 | A column has been specified more than once in the order by list. Columns in the order by list must be unique.
170 | 15 | Line %d: Incorrect syntax near '%.*ls'.
171 | 15 | Cannot use SELECT INTO in browse mode.
172 | 15 | Cannot use HOLDLOCK in browse mode.
173 | 15 | The definition for column '%.*ls' must include a data type.
174 | 15 | The %ls function requires %d arguments.
177 | 15 | The IDENTITY function can only be used when the SELECT statement has an INTO clause.
178 | 15 | A RETURN statement with a return status can only be used in a stored procedure.
179 | 15 | Cannot use the OUTPUT option when passing a constant to a stored procedure.
180 | 15 | There are too many parameters in this %ls statement. The maximum number is %d.
181 | 15 | Cannot use the OUTPUT option in a DECLARE statement.
182 | 15 | Table and column names must be supplied for the READTEXT or WRITETEXT utility.
183 | 15 | The scale (%d) for column '%.*ls' must be within the range %d to %d.
185 | 15 | Data stream is invalid for WRITETEXT statement in bulk form.
186 | 15 | Data stream missing from WRITETEXT statement.
188 | 15 | Cannot specify a log device in a CREATE DATABASE statement without also specifying at least one non-log device.
189 | 15 | The %ls function requires %d to %d arguments.
190 | 15 | Cannot update the function '%.*ls'.
191 | 15 | Some part of your SQL statement is nested too deeply. Rewrite the query or break it up into smaller queries.
192 | 16 | The scale must be less than or equal to the precision.
193 | 15 | The object or column name starting with '%.*ls' is too long. The maximum length is %d characters.
194 | 15 | A SELECT INTO statement cannot contain a SELECT statement that assigns values to a variable.
195 | 15 | '%.*ls' is not a recognized %S_MSG.
196 | 15 | SELECT INTO must be the first query in a SQL statement containing a UNION operator.
198 | 15 | Browse mode is invalid for statements containing a UNION operator.
199 | 15 | An INSERT statement cannot contain a SELECT statement that assigns values to a variable.
201 | 16 | Procedure '%.*ls' expects parameter '%.*ls', which was not supplied.
203 | 16 | The name '%.*ls' is not a valid identifier.
204 | 20 | Normalization error in node %ls.
205 | 16 | All queries in a SQL statement containing a UNION operator must have an equal number of expressions in their target lists.
206 | 16 | Operand type clash: %ls is incompatible with %ls
207 | 16 | Invalid column name '%.*ls'.
208 | 16 | Invalid object name '%.*ls'.
209 | 16 | Ambiguous column name '%.*ls'.
210 | 16 | Syntax error converting datetime from binary/varbinary string.
212 | 16 | Expression result length exceeds the maximum. %d max, %d found.
213 | 16 | Insert Error: Column name or number of supplied values does not match table definition.
214 | 16 | Cannot convert parameter '%ls' to %ls data type expected by procedure.
217 | 16 | Maximum stored procedure nesting level exceeded (limit %d).
220 | 16 | Arithmetic overflow error for data type %ls, value = %ld.
221 | 10 | FIPS Warning: Implicit conversion from %ls to %ls.
223 | 11 | Object ID %ld specified as a default for table ID %ld, column ID %d is missing or not of type default.
224 | 11 | Object ID %ld specified as a rule for table ID %ld, column ID %d is missing or not of type default.
226 | 16 | %ls statement not allowed within multi-statement transaction.
229 | 14 | %ls permission denied on object '%.*ls', database '%.*ls', owner '%.*ls'.
230 | 14 | %ls permission denied on column '%.*ls' of object '%.*ls', database '%.*ls', owner '%.*ls'.
231 | 11 | No such default. ID = %ld, database ID = %d.
232 | 16 | Arithmetic overflow error for type %ls, value = %f.
233 | 16 | The column '%.*ls' in table '%.*ls' cannot be null.
234 | 16 | There is insufficient result space to convert a money value to %ls.
235 | 16 | Cannot convert a char value to money. The char value has incorrect syntax.
236 | 16 | The conversion from char data type to money resulted in a money overflow error.
237 | 16 | There is insufficient result space to convert a money value to %ls.
238 | 16 | There is insufficient result space to convert the %ls value (= %d) to the money data type.
241 | 16 | Syntax error converting datetime from character string.
242 | 16 | The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
243 | 16 | Type %.*ls is not a defined system type.
244 | 16 | The conversion of the %ls value '%.*ls' overflowed an %hs column. Use a larger integer column.
245 | 16 | Syntax error converting the %ls value '%.*ls' to a column of data type %ls.
248 | 16 | The conversion of the %ls value '%.*ls' overflowed an int column. Maximum integer value exceeded.
251 | 16 | Could not allocate ancillary table for query optimization. Maximum number of tables in a query (%d) exceeded.
252 | 16 | Cannot group by a bit column.
256 | 16 | The data type %ls is invalid for the %ls function. Allowed types are: char/varchar, nchar/nvarchar, and binary/varbinary.
257 | 16 | Implicit conversion from data type %ls to %ls is not allowed. Use the CONVERT function to run this query.
259 | 16 | Ad hoc updates to system catalogs are not enabled. The system administrator must reconfigure SQL Server to allow this.
260 | 16 | Disallowed implicit conversion from data type %ls to data type %ls, table '%ls', column '%ls'. Use the CONVERT function to run this query.
261 | 16 | '%.*ls' is not a recognized function.
262 | 16 | %ls permission denied, database '%.*ls', owner '%.*ls'.
263 | 16 | Must specify table to select from.
264 | 16 | Column name '%.*ls' appears more than once in the result column list.
266 | 16 | Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing. Previous count = %ld, current count = %ld.
267 | 16 | Object '%.*ls' cannot be found.
268 | 16 | Cannot run SELECT INTO in this database. The database owner must run sp_dboption to enable this option.
270 | 16 | Table '%.*ls' cannot be modified.
271 | 16 | Column '%.*ls' cannot be modified because it is a computed column.
272 | 16 | Cannot update a timestamp column.
273 | 16 | Cannot insert a non-null value into a timestamp column. Use INSERT with a column list or with a default of NULL for the timestamp column.
278 | 16 | The text, ntext, and image data types cannot be used in a GROUP BY clause.
279 | 16 | The text, ntext, and image data types are invalid in this subquery or aggregate expression.
280 | 16 | Only text, ntext, and image data types are valid with the TEXTPTR function.
281 | 16 | %d is not a valid style number when converting from datetime to a character string.
282 | 10 | The '%.*ls' procedure attempted to return a status of NULL, which is not allowed. A status of 0 will be returned instead.
284 | 16 | Rules cannot be bound to text, ntext, or image data types.
285 | 16 | The READTEXT and WRITETEXT statements cannot be used with views.
286 | 16 | The logical tables INSERTED and DELETED cannot be updated.
287 | 16 | The %ls statement is not allowed within a trigger.
288 | 16 | The PATINDEX function operates on char, nchar, varchar, nvarchar, text, and ntext data types only.
292 | 16 | There is insufficient result space to convert a smallmoney value to %ls.
293 | 16 | Cannot convert char value to smallmoney. The char value has incorrect syntax.
294 | 16 | The conversion from char data type to smallmoney data type resulted in a smallmoney overflow error.
295 | 16 | Syntax error converting character string to smalldatetime data type.
296 | 16 | The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.
298 | 16 | The conversion from datetime data type to smalldatetime data type resulted in a smalldatetime overflow error.
299 | 16 | The DATEADD function was called with bad type %ls.
301 | 16 | Query contains an outer-join request that is not permitted.
303 | 16 | The table '%.*ls' is an inner member of an outer-join clause. This is not allowed if the table also participates in a regular join clause.
306 | 16 | The text, ntext, and image data types cannot be used in the WHERE, HAVING, or ON clause, except with the LIKE or IS NULL predicates.
307 | 16 | Index ID %d on table '%.*ls' (specified in the FROM clause) does not exist.
308 | 16 | Index '%.*ls' on table '%.*ls' (specified in the FROM clause) does not exist.
310 | 16 | Invalid escape sequence. Valid characters after ESC are: an ESC pair, underscore, percent sign.
311 | 16 | Cannot use text, ntext, or image columns in the 'inserted' and 'deleted' tables.
312 | 16 | Cannot reference text, ntext, or image columns in a filter stored procedure.
401 | 16 | Unimplemented statement or expression %ls.
403 | 16 | Invalid operator for data type. Operator equals %ls, type equals %ls.
409 | 16 | The %ls operation cannot take a %ls data type as an argument.
410 | 20 | COMPUTE clause #%d 'BY' expression #%d is not in the order by list.
411 | 20 | COMPUTE clause #%d, aggregate expression #%d is not in the select list.
420 | 16 | The text, ntext, and image data types cannot be used in an ORDER BY clause.
425 | 16 | Data type %ls of receiving variable is not equal to the data type %ls of column '%.*ls'.
426 | 16 | The length %d of the receiving variable is less than the length %d of the column '%.*ls'.
427 | 20 | Could not load sysprocedures entries for constraint ID %d in database ID %d.
428 | 20 | Could not find row in sysconstraints for constraint ID %d in database ID %d.
429 | 20 | Could not find new constraint ID %d in sysconstraints, database ID %d, at compile time.
430 | 20 | Could not resolve table name for object ID %d, database ID %d, when compiling foreign key.
431 | 19 | Could not bind foreign key constraint. Too many tables involved in the query.
433 | 20 | Could not find CHECK constraint for '%.*ls', although the table is flagged as having one.
436 | 20 | Could not open referenced table ID %d in database ID %d.
437 | 20 | Could not resolve the referenced column name in table ID %d.
438 | 20 | Could not resolve the referencing column name in table ID %d.
439 | 20 | Could not find FOREIGN KEY constraints for table '%.*ls' in database ID %d although the table is flagged as having them.
441 | 16 | Cannot use the '%ls' function on a remote data source.
505 | 16 | Current user account was invoked with SETUSER. Changing databases is not allowed.
506 | 16 | Invalid ESCAPE character '%.*hs' has been specified in a LIKE predicate.
507 | 16 | Invalid argument %d specified for SET ROWCOUNT.
509 | 11 | User name '%.*ls' not found.
510 | 16 | Cannot create a work table row larger than allowable maximum. Resubmit your query with the ROBUST PLAN hint.
511 | 16 | Cannot create a row of size %d which is greater than the allowable maximum of %d.
512 | 16 | Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
513 | 16 | A column insert or update conflicts with a rule imposed by a previous CREATE RULE statement. The statement was terminated. The conflict occurred in database '%.*ls', table '%.*ls', column '%.*ls'.
515 | 16 | Cannot insert the value NULL into column '%.*ls', table '%.*ls'; column does not allow nulls. %ls fails.
516 | 18 | Could not get system date/time.
517 | 16 | Adding a value to a '%ls' column caused overflow.
518 | 16 | Cannot convert data type %ls to %ls.
528 | 20 | System error detected during attempt to use the 'upsleep' system function.
529 | 16 | Explicit conversion from data type %ls to %ls is not allowed.
532 | 16 | The timestamp (changed to %S_TS) shows that the row has been updated by another user.
535 | 16 | Difference of two datetime columns caused overflow at runtime.
536 | 16 | Invalid length parameter passed to the substring function.
538 | 16 | Cannot find '%.*ls'. This language may have been dropped. Contact your system administrator.
542 | 16 | An invalid datetime value was encountered. Value exceeds the year 9999.
544 | 16 | Cannot insert explicit value for identity column in table '%.*ls' when IDENTITY_INSERT is set to OFF.
545 | 16 | Explicit value must be specified for identity column in table '%.*ls' when IDENTITY_INSERT is set to ON.
547 | 16 | %ls statement conflicted with %ls %ls constraint '%.*ls'. The conflict occurred in database '%.*ls', table '%.*ls'%ls%.*ls%ls.
548 | 16 | Cannot perform direct %ls to range maintained by replication. The conflict occurred in database '%.*ls', table '%.*ls'%ls%.*ls%ls.
550 | 16 | The attempted insert or update failed because the target view either specifies WITH CHECK OPTION or spans a view that specifies WITH CHECK OPTION and one or more rows resulting from the operation did not qualify under the CHECK OPTION constraint.
551 | 16 | The checksum has changed to %d. This shows that the row has been updated by another user.
553 | 16 | %hs over nullable side of outer join query on table '%ls'.
555 | 16 | User-defined functions are not yet enabled.
556 | 16 | INSERT EXEC failed because the stored procedure altered the schema of the target table.
601 | 12 | Could not continue scan with NOLOCK due to data movement.
602 | 21 | Could not find row in sysindexes for database ID %d, object ID %ld, index ID %d. Run DBCC CHECKTABLE on sysindexes.
604 | 21 | Could not find row in sysobjects for object ID %ld in database '%.*ls'. Run DBCC CHECKTABLE on sysobjects.
605 | 21 | Attempt to fetch logical page %S_PGID in database '%.*ls' belongs to object '%.*ls', not to object '%.*ls'.
607 | 21 | Insufficient room was allocated for search arguments in the session descriptor for object '%.*ls'. Only %d search arguments were anticipated.
615 | 21 | Could not find database table ID %d, name '%.*ls'.
617 | 20 | Descriptor for object ID %ld in database ID %d not found in the hash table during attempt to unhash it.
618 | 21 | A varno of %d was passed to the opentable system function. The largest valid value is %d.
623 | 21 | Could not retrieve row from page by RID because logical page %S_PGID is not a data page. %S_RID. %S_PAGE.
624 | 21 | Could not retrieve row from page by RID because the requested RID has a higher number than the last RID on the page. %S_RID.%S_PAGE, DBID %d.
625 | 21 | Could not retrieve row from logical page %S_PGID by RID because the entry in the offset table (%d) for that RID (%d) is less than or equal to 0.
626 | 16 | Cannot use ROLLBACK with a savepoint within a distributed transaction.
627 | 16 | Cannot use SAVE TRANSACTION within a distributed transaction.
628 | 13 | Cannot issue SAVE TRANSACTION when there is no active transaction.
635 | 20 | Process %d tried to remove DES resource lock %S_DES, which it does not hold.
637 | 20 | Index shrink program returned invalid status of 0.
639 | 21 | Could not fetch logical page %S_PGID, database ID %d. The page is not currently allocated.
644 | 21 | Could not find the index entry for RID '%.*hs' in index page %S_PGID, index ID %d, database '%.*ls'.
649 | 21 | Could not find the clustered index entry for page %S_PGID, object ID %ld, status 0x%x. Index page %S_PGID, in database '%.*ls', was searched for this entry.
650 | 16 | You can only specify the READPAST lock in the READ COMMITTED or REPEATABLE READ isolation levels.
651 | 16 | Cannot use %hs granularity hint on table '%.*ls' because locking at the specified granularity is inhibited.
652 | 16 | Index ID %d for table '%.*ls' resides on a read-only filegroup which cannot be modified.
653 | 20 | Two buffers are conflicting for the same keep slot in table '%.*ls'.
654 | 20 | No slots are free to keep buffers for table '%.*ls'.
655 | 20 | Expected to find buffer in keep slot for table '%.*ls'.
666 | 16 | Maximum system-generated unique value for a duplicate group exceeded for table ID %d, index ID %d. Dropping and re-creating the index may fix the problem; otherwise use another clustering key.
701 | 19 | There is insufficient system memory to run this query.
708 | 10 | Warning: Due to low virtual memory, special reserved memory used %d times since startup. Increase virtual memory on server.
802 | 17 | No more buffers can be stolen.
804 | 20 | Could not find buffer 0x%lx holding logical page %S_PGID in the SDES 0x%lx kept buffer pool for object '%.*ls'.
809 | 20 | Buffer 0x%lx, allocation page %S_PGID, in database '%.*ls' is not in allocation buffer pool in PSS (process status structure). Contact Technical Support.
813 | 20 | Logical page %S_PGID in database ID %d is already hashed.
816 | 20 | Process ID %d tried to remove a buffer resource lock %S_BUF that it does not hold in SDES %S_SDES. Contact Technical Support.
818 | 19 | There is no room to hold the buffer resource lock %S_BUF in SDES %S_SDES. Contact Technical Support.
821 | 20 | Could not unhash buffer at 0x%lx with a buffer page number of %S_PGID and database ID %d with HASHED status set. The buffer was not found. %S_PAGE.
822 | 21 | Could not start I/O for request %S_BLKIOPTR.
823 | 24 | I/O error %ls detected during %S_MSG of %S_BUF.
834 | 21 | The bufclean system function was called on dirty buffer (page %S_PGID, stat %#x/%#x, objid %#x, sstat%#x).
840 | 17 | Device '%.*ls' (physical name '%.*ls', virtual device number %d) is not available. Contact the system administrator for assistance.
844 | 10 | Time out occurred while waiting for buffer latch type %d, bp %#x, page %S_PGID, stat %#x, object ID %d:%d:%d, waittime %d. Continuing to wait.
845 | 17 | Time out occurred while waiting for buffer latch type %d for page %S_PGID, database ID %d, object ID %d, index ID %d.
901 | 21 | Could not find descriptor for database ID %d, object ID %ld in hash table after hashing it.
903 | 22 | Could not find row in sysindexes for clustered index on system catalog %ld in database ID %d. This index should exist in all databases. Run DBCC CHECKTABLE on sysindexes in the database.
906 | 22 | Could not locate row in sysobjects for system catalog '%.*ls' in database '%.*ls'. This system catalog should exist in all databases. Run DBCC CHECKTABLE on sysobjects in this database.
911 | 16 | Could not locate entry in sysdatabases for database '%.*ls'. No entry found with that name. Make sure that the name is entered correctly.
913 | 22 | Could not find database ID %d. Database may not be activated yet or may be in transition.
916 | 14 | Server user '%.*ls' is not a valid user in database '%.*ls'.
921 | 14 | Database '%.*ls' has not been recovered yet. Wait and try again.
922 | 14 | Database '%.*ls' is being recovered. Waiting until recovery is finished.
923 | 14 | User %d not allowed in database '%.*ls'. Only the owner can access this database.
924 | 14 | Database '%.*ls' is already open and can only have one user at a time.
925 | 19 | Maximum number of databases used for each query has been exceeded. The maximum allowed is %d.
926 | 14 | Database '%.*ls' cannot be opened. It has been marked SUSPECT by recovery. See the SQL Server errorlog for more information.
927 | 14 | Database '%.*ls' cannot be opened. It is in the middle of a restore.
929 | 20 | Attempting to close a database that is not already open. Contact Technical Support.
941 | 14 | Cannot open database '%.*ls'. It has not been upgraded to the latest format.
942 | 14 | Database '%.*ls' cannot be opened because it is offline.
943 | 14 | Database '%.*ls' cannot be opened because its version (%d) is later than the current server version (%d).
944 | 10 | Converting database '%.*ls' from version %d to the current version %d.
945 | 16 | Database '%.*ls' cannot be opened because some of the files could not be activated.
946 | 14 | Cannot open database '%.*ls' version %d. Upgrade the database to the latest version.
947 | 16 | Error while closing database '%.*ls' cleanly.


Errors 1000 - 1999

Error | Severity | Description
1001 | 16 | Line %d: Length or precision specification %d is invalid.
1002 | 16 | Line %d: Specified scale %d is invalid.
1003 | 15 | Line %d: %ls clause allowed only for %ls.
1005 | 15 | Line %d: Invalid procedure number (%d). Must be between 1 and 32767.
1006 | 15 | CREATE TRIGGER contains no statements.
1007 | 15 | The %S_MSG '%.*ls' is out of the range for numeric representation (maximum precision %d).
1008 | 15 | The SELECT item identified by the ORDER BY number %d contains a variable as part of the expression identifying a column position. Variables are only allowed when ordering by an expression referencing a column name.
1010 | 15 | Invalid escape character '%.*ls'.
1011 | 15 | The correlation name '%.*ls' is specified multiple times in a FROM clause.
1012 | 15 | The correlation name '%.*ls' has the same exposed name as table '%.*ls'.
1013 | 15 | Tables '%.*ls' and '%.*ls' have the same exposed names. Use correlation names to distinguish them.
1015 | 15 | An aggregate cannot appear in an ON clause unless it is in a subquery contained in a HAVING clause or select list, and the column being aggregated is an outer reference.
1016 | 15 | Outer join operators cannot be specified in a query containing joined tables.
1019 | 15 | Invalid column list after object name in GRANT/REVOKE statement.
1020 | 15 | Cannot specify column list for INSERT/DELETE/EXECUTE privileges in the GRANT/REVOKE statement.
1021 | 10 | FIPS Warning: Line %d has the non-ANSI statement '%ls'.
1022 | 10 | FIPS Warning: Line %d has the non-ANSI clause '%ls'.
1023 | 15 | Invalid parameter %d specified for %ls.
1024 | 10 | FIPS Warning: Line %d has the non-ANSI function '%ls'.
1025 | 10 | FIPS Warning: The length of identifier '%.*ls' exceeds 18.
1027 | 15 | Too many expressions are specified in the GROUP BY clause. The maximum number is %d when either CUBE or ROLLUP is specified.
1028 | 15 | The CUBE and ROLLUP options are not allowed in a GROUP BY ALL clause.
1029 | 15 | Browse mode is invalid for subqueries and derived tables.
1031 | 15 | Percent values must be between 0 and 100.
1032 | 16 | Cannot use the column prefix '%.*ls'. This must match the object in the UPDATE clause '%.*ls'.
1033 | 16 | An ORDER BY clause is invalid in views, derived tables, and subqueries unless TOP is also specified.
1035 | 15 | Incorrect syntax near '%.*ls', expected '%.*ls'.
1036 | 15 | File option %hs is required in this CREATE/ALTER DATABASE statement.
1037 | 15 | The CASCADE, WITH GRANT or AS options cannot be specified with statement permissions.
1038 | 15 | Cannot use empty object or column names. Use a single space if necessary.
1039 | 15 | SHOWPLAN is not available. Use SHOWPLAN_TEXT or SHOWPLAN_ALL instead.
1040 | 15 | Mixing old and new syntax in CREATE/ALTER DATABASE statement is not allowed.
1041 | 15 | Option %.*ls is not allowed for a LOG file.
1042 | 15 | Conflicting %ls optimizer hints specified.
1043 | 15 | '%hs' is not yet implemented.
1044 | 15 | Cannot use an existing function name to specify a stored procedure name.
1045 | 15 | Aggregates are not allowed in this context. Only scalar expressions are allowed.
1046 | 15 | Subqueries are not allowed in this context. Only scalar expressions are allowed.
1047 | 15 | Conflicting locking hints specified.
1048 | 15 | Conflicting cursor options %ls and %ls.
1049 | 15 | Mixing old and new syntax to specify cursor options is not allowed.
1050 | 15 | This syntax is only allowed within the stored procedure sp_executesql.
1051 | 15 | Cursor parameters in a stored procedure must be declared with OUTPUT and VARYING options, and they must be specified in the order CURSOR VARYING OUTPUT.
1052 | 15 | Conflicting %ls options %ls and %ls.
1053 | 15 | For DROP STATISTICS, you must give both the table and the column name in the form 'tablename.column'.
1055 | 15 | '%.*ls' is an invalid name because it contains a NULL character.
1056 | 15 | The maximum number of elements in the select list is %d and you have supplied %d.
1057 | 15 | The IDENTITY function cannot be used with a SELECT INTO statement containing a UNION operator.
1058 | 15 | Cannot specify both READ_ONLY and FOR READ ONLY on a cursor declaration.
1059 | 15 | Cannot set or reset the %ls option within a procedure.
1060 | 15 | The number of rows in the TOP clause must be an integer.
1061 | 16 | The text/ntext/image constants are not yet implemented.
1062 | 16 | The TOP N WITH TIES clause is not allowed without a corresponding ORDER BY clause.
1063 | 16 | A filegroup cannot be added using ALTER DATABASE ADD FILE. Use ALTER DATABASE ADD FILEGROUP.
1064 | 16 | A filegroup cannot be used with log files.
1065 | 15 | The NOLOCK, READUNCOMMITTED, and READPAST lock hints are only allowed in a SELECT statement.
1066 | 10 | Warning. Line %d: The option '%ls' is obsolete and has no effect.
1067 | 15 | The SET SHOWPLAN statements must be the only statements in the batch.
1068 | 16 | Only one list of index hints per table is allowed.
1069 | 16 | Index hints are only allowed in a FROM clause.
1070 | 15 | CREATE INDEX option '%.*ls' is no longer supported.
1071 | 16 | Cannot specify a JOIN algorithm with a remote JOIN.
1072 | 16 | A REMOTE hint can only be specified with an INNER JOIN clause.
1073 | 15 | '%.*ls' is not a recognized cursor option for cursor %.*ls.
1101 | 17 | Could not allocate new page for database '%.*ls'. There are no more pages available in filegroup %.*ls. Space can be created by dropping objects, adding additional files, or allowing file growth.
1102 | 22 | IAM page %S_PGID for object ID %ld is incorrect. The %S_MSG ID on page is %ld; should be %ld. The entry in sysindexes may be incorrect or the IAM page may be corrupt.
1103 | 21 | Allocation page %S_PGID in database '%.*ls' has different segment ID than that of the object which is being allocated to. Run DBCC CHECKALLOC.
1105 | 17 | Could not allocate space for object '%.*ls' in database '%.*ls' because the '%.*ls' filegroup is full.
1109 | 21 | Could not read allocation page %S_PGID because either the object ID (%ld) is not correct, or the page ID (%S_PGID) is not correct.
1201 | 20 | The page_lock system function was called with a mode %d that is not permitted.
1203 | 20 | Process ID %d attempting to unlock unowned resource %.*ls.
1204 | 19 | SQL Server has run out of LOCKS. Rerun your statement when there are fewer active users, or ask the system administrator to reconfigure SQL Server with more LOCKS.
1205 | 13 | Your transaction (process ID #%d) was deadlocked with another process and has been chosen as the deadlock victim. Rerun your transaction.
1211 | 13 | Process ID %d was chosen as the deadlock victim with P_BACKOUT bit set.
1220 | 17 | No more lock classes available from transaction.
1221 | 20 | Invalid lock class for release call.
1222 | 13 | Lock request time out period exceeded.
1501 | 20 | Sort failure.
1505 | 14 | CREATE UNIQUE INDEX terminated because a duplicate key was found. Most significant primary key is '%S_KEY'.
1507 | 10 | Warning: Deleted duplicate row. Primary key is '%S_KEY'.
1508 | 14 | CREATE INDEX terminated because a duplicate row was found. Primary key is '%S_KEY'.
1509 | 20 | Row compare failure.
1510 | 17 | Sort failed. Out of space or locks in database '%.*ls'.
1511 | 20 | Sort cannot be reconciled with transaction log.
1522 | 20 | Sort failure. Prevented overwriting of allocation page in database '%.*ls' by terminating sort.
1523 | 20 | Sort failure. Prevented incorrect extent deallocation by aborting sort.
1528 | 21 | Character data comparison failure. An unrecognized Sort-Map-Element type (%d) was found in the server-wide default sort table at SMEL entry [%d].
1529 | 21 | Character data comparison failure. A list of Sort-Map-Elements from the server-wide default sort table does not end properly. This list begins at SMEL entry [%d].
1530 | 16 | CREATE INDEX with DROP_EXISTING was aborted because a row was out of order. Most significant offending primary key is '%S_KEY'. Explicitly drop and create the index instead.
1531 | 16 | The SORTED_DATA_REORG option cannot be used for a nonclustered index if the keys are not unique within the table. CREATE INDEX was aborted because of duplicate keys. Primary key is '%S_KEY'.
1532 | 20 | New sort run starting on page %S_PGID found extent not marked as shared.
1533 | 20 | Cannot share extent %S_PGID among more than eight sort runs.
1534 | 20 | Extent %S_PGID not found in shared extent directory.
1535 | 20 | Cannot share extent %S_PGID with shared extent directory full.
1536 | 20 | Cannot build a nonclustered index on a memory-only work table.
1537 | 20 | Cannot suspend a sort not in row input phase.
1538 | 20 | Cannot insert into a sort not in row input phase.
1540 | 16 | Cannot sort a row of size %d, which is greater than the allowable maximum of %d.
1619 | 21 | Could not open tempdb. Cannot continue.
1701 | 16 | Creation of table '%.*ls' failed because the row size would be %d, including internal overhead. This exceeds the maximum allowable table row size, %d.
1702 | 16 | CREATE TABLE failed because column '%.*ls' in table '%.*ls' exceeds the maximum of %d columns.
1703 | 17 | Could not allocate disk space for a work table in database '%.*ls'. You may be able to free up space by using BACKUP LOG, or you may want to extend the size of the database by using ALTER DATABASE.
1704 | 16 | Only members of the sysadmin role can create the system table '%.*ls'.
1705 | 16 | You must create system table '%.*ls' in the master database.
1706 | 16 | System table '%.*ls' was not created, because ad hoc updates to system catalogs are not enabled.
1708 | 10 | The total row size (%d) for table '%.*ls' exceeds the maximum number of bytes per row (%d). Rows that exceed the maximum number of bytes will not be added.
1709 | 16 | Cannot use TEXTIMAGE_ON when a table has no text, ntext, or image columns.
1750 | 10 | Could not create constraint. See previous errors.
1752 | 16 | Could not create DEFAULT for column '%.*ls' as it is not a valid column in the table '%.*ls'.
1753 | 16 | Column '%.*ls.%.*ls' is not the same length as referencing column '%.*ls.%.*ls' in foreign key '%.*ls'.
1754 | 16 | Defaults cannot be created on columns with an IDENTITY attribute. Table '%.*ls', column '%.*ls'.
1755 | 16 | Defaults cannot be created on columns of data type timestamp. Table '%.*ls', column '%.*ls'.
1756 | 10 | Skipping FOREIGN KEY constraint '%.*ls' definition for temporary table.
1759 | 16 | Invalid column '%.*ls' specified in constraint definition.
1760 | 16 | Constraints of type %ls cannot be created on columns of type %ls.
1763 | 16 | Cross-database foreign key references are not supported. Foreign key '%.*ls'.
1766 | 16 | Foreign key references to temporary tables are not supported. Foreign key '%.*ls'.
1767 | 16 | Foreign key '%.*ls' references invalid table '%.*ls'.
1768 | 16 | Foreign key '%.*ls' references object '%.*ls' which is not a user table.
1769 | 16 | Foreign key '%.*ls' references invalid column '%.*ls' in referencing table '%.*ls'.
1770 | 16 | Foreign key '%.*ls' references invalid column '%.*ls' in referenced table '%.*ls'.
1772 | 16 | Foreign key '%.*ls' defines an invalid relationship between a user table and system table.
1773 | 16 | Foreign key '%.*ls' has implicit reference to object '%.*ls' which does not have a primary key defined on it.
1774 | 16 | The number of columns in the referencing column list for foreign key '%.*ls' does not match those of the primary key in the referenced table '%.*ls'.
1776 | 16 | There are no primary or candidate keys in the referenced table '%.*ls' that match the referencing column list in the foreign key '%.*ls'.
1777 | 14 | User does not have correct permissions on referenced table '%.*ls' to create foreign key '%.*ls'.
1778 | 16 | Column '%.*ls.%.*ls' is not the same data type as referencing column '%.*ls.%.*ls' in foreign key '%.*ls'.
1779 | 16 | Table '%.*ls' already has a primary key defined on it.
1780 | 20 | Could not find column ID %d in syscolumns for object ID %d in database ID %d.
1781 | 16 | Column already has a DEFAULT bound to it.
1801 | 16 | Database '%.*ls' already exists.
1802 | 11 | CREATE DATABASE failed. Some file names listed could not be created. Check previous errors.
1803 | 17 | CREATE DATABASE failed. Could not allocate enough disk space for a new database on the named disks. Total space allocated must be at least %d MB to a accommodate copy of the model database.
1804 | 10 | There is no disk named '%.*ls'. Checking other disk names.
1805 | 10 | The CREATE DATABASE process is allocating %.2f MB on disk '%.*ls'.
1807 | 17 | Could not obtain exclusive lock on database '%.*ls'. Retry the operation later.
1808 | 21 | Default devices are not supported.
1811 | 16 | '%.*ls' is the wrong type of device for CREATE DATABASE or ALTER DATABASE. Check sysdevices. The statement is aborted.
1813 | 16 | Could not open new database '%.*ls'. CREATE DATABASE is aborted.
1814 | 10 | Could not create tempdb. If space is low, extend the amount of space and restart.
1816 | 16 | Could not attach the database because the character set, sort order, or Unicode collation for the database differs from this server.
1817 | 10 | Warning: %ls %ld in database differs from server %ls of %ld.
1818 | 16 | Primary log file '%ls' is missing and the database was not cleanly shut down so it cannot be rebuilt.
1819 | 10 | Could not create default log file because the name was too long.
1820 | 16 | Disk '%.*ls' is already completely used by other databases. It can be expanded with DISK RESIZE.
1826 | 16 | User-defined filegroups are not allowed on '%hs'.
1827 | 16 | CREATE/ALTER DATABASE failed because the resulting cumulative database size would exceed your licensed limit of %d MB per %S_MSG.
1828 | 16 | The file named '%.*ls' is already in use. Choose another name.
1829 | 16 | The FOR ATTACH option requires that at least the primary file be specified.
1830 | 16 | The files '%.*ls' and '%.*ls' are both primary files. A database can only have one primary file.
1831 | 10 | Successfully %ls database '%.*ls'.
1832 | 20 | Could not attach database '%.*ls' to file '%.*ls'.
1901 | 16 | Column '%.*ls'. Cannot create index on a column of bit data type.
1902 | 16 | Cannot create more than one clustered index on table '%.*ls'. Drop the existing clustered index '%.*ls' before creating another.
1903 | 16 | %d is the maximum allowable size of an index. The composite index specified is %d bytes.
1904 | 16 | Cannot specify more than %d column names for index key list. %d specified.
1905 | 21 | Could not find 'zero' row for index '%.*ls' the table in sysindexes.
1906 | 11 | Cannot create an index on table '%.*ls', because this table does not exist in database '%.*ls'.
1909 | 16 | Cannot use duplicate column names in index key list. Column name '%.*ls' listed more than once.
1910 | 16 | Cannot create more than %d indexes or column statistics on one table.
1911 | 16 | Column name '%.*ls' does not exist in the target table.
1913 | 16 | There is already an index on table '%.*ls' named '%.*ls'.
1914 | 16 | Cannot create index on object '%.*ls' because it is not a user table.
1915 | 16 | Only members of the sysadmin role or the owner of table '%.*ls' can create an index on it.
1916 | 16 | CREATE INDEX options %ls and %ls are mutually exclusive.
1918 | 10 | Index (ID = %d) is being rebuilt.
1919 | 16 | Column '%.*ls'. Cannot create index on a column of text, ntext, or image data type.
1920 | 10 | Skipping rebuild of index ID %d, which is on a read-only filegroup.
1921 | 16 | Invalid filegroup '%.*ls' specified.
1922 | 16 | Filegroup '%.*ls' has no files assigned to it. Tables, indexes, and text, ntext, and image columns cannot be created on this filegroup.
1923 | 10 | The clustered index has been dropped.
1924 | 16 | Filegroup '%.*ls' is read-only.
1925 | 16 | Cannot convert a clustered index to a nonclustered index using the DROP_EXISTING option.
1926 | 16 | Cannot create a clustered index because nonclustered index ID %d is on a read-only filegroup.
1927 | 16 | There are already statistics on table '%.*ls' named '%.*ls'.
1928 | 16 | Cannot create statistics on table '%.*ls' because this table does not exist in database '%.*ls'.
1929 | 16 | Cannot create statistics on table '%.*ls' because it is not a user table.
1930 | 16 | Only the owner of table '%.*ls' or a member of the sysadmin fixed server role can create statistics on it.


Errors 2000 - 2999

Error | Severity | Description
2001 | 10 | Cannot use duplicate parameter names. Parameter name '%.*ls' listed more than once.
2004 | 16 | Procedure '%.*ls' has already been created with group number %d. Create procedure with an unused group number.
2007 | 11 | Cannot add rows to sysdepends for the current stored procedure because it depends on the missing object '%.*ls'. The stored procedure will still be created.
2008 | 16 | The object '%.*ls' is not a procedure so you cannot create another procedure under that group name.
2009 | 10 | Procedure '%.*ls' was created despite delayed name resolution warnings (if any).
2010 | 16 | Cannot use ALTER %ls with %.*ls because %.*ls is a %S_MSG.
2106 | 11 | Cannot create a trigger on table '%.*ls', because this table does not exist in database '%.*ls'.
2108 | 16 | Cannot create a trigger on table '%.*ls' because you can only create a trigger on a table in the current database.
2109 | 16 | Cannot create a trigger on table '%.*ls' that accesses 'inserted' or 'deleted' because the table was created with the no_log option.
2110 | 16 | Cannot alter trigger '%.*ls' for table '%.*ls' because this trigger does not belong to this table.
2501 | 16 | Could not find table named '%.*ls'. Check sysobjects.
2502 | 16 | Could not start transaction.
2503 | 10 | Successfully deleted the physical file '%ls'.
2504 | 16 | Could not delete the physical file '%ls'. The DeleteFile system function returned error %ls.
2505 | 16 | The device '%.*ls' does not exist. Use sp_helpdevice to show available devices.
2511 | 16 | Table Corrupt: Object ID %d, Index ID %d. Keys out of order on page %S_PGID, slots %d and %d.
2513 | 16 | Table Corrupt: Object ID %ld (object '%.*ls') does not match between '%.*ls' and '%.*ls'.
2514 | 16 | Table Corrupt: Data type %ld (type '%.*ls') does not match between '%.*ls' and '%.*ls'.
2520 | 16 | Could not find database '%.*ls'. Check sysdatabases.
2521 | 16 | Could not find database ID %d. Check sysdatabases.
2526 | 16 | Incorrect DBCC statement. Check the documentation for the correct DBCC syntax and options.
2528 | 10 | DBCC execution completed. If DBCC printed error messages, contact your system administrator.
2532 | 16 | DBCC SHRINKFILE could not shrink file %ls. Log files are not supported.
2535 | 16 | Table Corrupt: Page %S_PGID is allocated to object ID %d, index ID %d, not to object ID %d, index ID %d found in page header.
2536 | 10 | DBCC results for '%.*ls'.
2538 | 10 | Allocation page %S_PGID. Number of extents = %ld, used pages = %ld, referenced pages = %ld.
2539 | 10 | Total number of extents = %ld, used pages = %ld, referenced pages = %ld in this database.
2540 | 10 | The system cannot self repair this error.
2541 | 10 | DBCC UPDATEUSAGE: sysindexes row updated for table '%.*ls' (index ID %ld):
2542 | 10 | DATA pages: Changed from (%ld) to (%ld) pages.
2543 | 10 | USED pages: Changed from (%ld) to (%ld) pages.
2544 | 10 | RSVD pages: Changed from (%ld) to (%ld) pages.
2545 | 10 | ROWS count: Changed from (%I64d) to (%I64d) rows.
2557 | 16 | Only the owner of object '%.*ls' can run DBCC %ls on it.
2560 | 16 | Parameter %d is incorrect for this DBCC statement.
2562 | 16 | '%ls' cannot access object '%.*ls' because it is not a table.
2566 | 14 | DBCC DBREINDEX cannot be used on system tables.
2568 | 16 | Page %S_PGID is out of range for this database or is in a log file.
2571 | 10 | Only members of the sysadmin role can use the DBCC statement %.*ls.
2573 | 16 | Database '%.*ls' is not marked suspect. You cannot drop it with DBCC.
2574 | 10 | Object ID %d, index ID %d: Page %S_PGID is empty. This is not permitted at level %d of the B-tree.
2583 | 16 | An incorrect number of parameters was given to the DBCC statement.
2588 | 16 | Page %S_PGID was expected to be the first page of a text, ntext, or image value.
2591 | 16 | Could not find row in sysindexes with index ID %d for table '%.*ls'.
2592 | 10 | %ls index successfully restored for object '%.*ls' in database '%.*ls'.
2593 | 10 | There are %I64d rows in %ld pages for object '%.*ls'.
2594 | 16 | Invalid index ID (%d) specified.
2595 | 16 | Database '%.*ls' must be set to single user mode before executing this statement.
2597 | 16 | The database is not open. Execute a 'USE %.*ls' statement and rerun the DBCC statement.
2598 | 16 | Clustered indexes on sysobjects and sysindexes cannot be re-created.
2601 | 14 | Cannot insert duplicate key row in object '%.*ls' with unique index '%.*ls'.
2603 | 21 | No space left on logical page %S_PGID of index ID %d for object '%.*ls' when inserting row on an index page. This situation should have been handled while traversing the index.
2617 | 20 | Buffer holding logical page %S_PGID not found in keep pool in SDES for object '%.*ls'. Contact Technical Support.
2624 | 21 | Could not insert into table %S_DES because row length %d is less than the minimum length %d.
2627 | 14 | Violation of %ls constraint '%.*ls'. Cannot insert duplicate key in object '%.*ls'.
2701 | 10 | Database name '%.*ls' ignored, referencing object in tempdb.
2702 | 16 | Database '%.*ls' does not exist.
2705 | 16 | Column names in each table must be unique. Column name '%.*ls' in table '%.*ls' is specified more than once.
2706 | 11 | Table '%.*ls' does not exist.
2710 | 16 | You are not the owner specified for the object '%.*ls' in this statement (CREATE, ALTER, TRUNCATE, UPDATE STATISTICS or BULK INSERT).
2714 | 16 | There is already an object named '%.*ls' in the database.
2715 | 16 | Column or parameter #%d: Cannot find data type %.*ls.
2716 | 16 | Column or parameter #%d: Cannot specify a column width on data type %.*ls.
2717 | 16 | Column or parameter #%d: Specified column width too large for data type %.*ls.
2718 | 16 | Column or parameter #%d: Cannot specify null values on a column of data type bit.
2721 | 11 | Could not find a default segment to create the table on. Ask your system administrator to specify a default segment in syssegments.
2724 | 10 | Parameter '%.*ls' has an invalid data type.
2727 | 11 | Cannot find index '%.*ls'.
2729 | 16 | Procedure '%.*ls' group number 1 already exists in the database. Choose another procedure name.
2730 | 11 | Cannot create procedure '%.*ls' with a group number of %d because a procedure with the same name and a group number of 1 does not currently exist in the database. Must execute CREATE PROCEDURE '%.*ls';1 first.
2732 | 16 | User error number %ld is invalid. The number must be between %ld and %ld.
2734 | 16 | The user name '%.*ls' does not exist in sysusers.
2736 | 16 | Owner name specified is a group name. Objects cannot be owned by groups.
2737 | 16 | Message passed to %hs must be of type char, varchar, nchar, or nvarchar.
2738 | 16 | A table can only have one timestamp column. Because table '%.*ls' already has one, the column '%.*ls' cannot be added.
2739 | 16 | The text, ntext, and image data types are invalid for local variables.
2740 | 16 | SET LANGUAGE failed because '%.*ls' is not an official language name or a language alias on this SQL Server.
2741 | 16 | SET DATEFORMAT date order '%.*ls' is invalid.
2742 | 16 | SET DATEFIRST %d is out of range.
2743 | 16 | %ls statement requires %S_MSG parameter.
2744 | 16 | Multiple identity columns specified for table '%.*ls'. Only one identity column per table is allowed.
2745 | 10 | Process ID %d has raised user error %d, severity %d. SQL Server is terminating this process.
2746 | 16 | Cannot specify user error format string with a length exceeding %d bytes.
2747 | 16 | Too many substitution parameters for RAISERROR. Cannot exceed %d substitution parameters.
2748 | 16 | Cannot specify %ls data type (RAISERROR parameter %d) as a substitution parameter for RAISERRROR.
2749 | 16 | Identity column '%.*ls' must be of data type int, smallint, tinyint, or decimal or numeric with scale of 0, and constrained to be nonnullable.
2750 | 16 | Column or parameter #%d: Specified column precision %d is greater than the maximum precision of %d.
2751 | 16 | Column or parameter #%d: Specified column scale %d is greater than the specified precision of %d.
2752 | 16 | Identity column '%.*ls' contains invalid SEED.
2753 | 16 | Identity column '%.*ls' contains invalid INCREMENT.
2754 | 16 | Error severity levels greater than %d can only be specified by members of the sysadmin role, using the WITH LOG option.
2755 | 16 | SET DEADLOCK_PRIORITY option '%.*ls' is invalid.
2756 | 16 | Invalid value %d for state. Valid range is from %d to %d.
2757 | 16 | RAISERROR failed due to invalid parameter substitution(s) for error %d, severity %d, state %d.
2758 | 16 | %hs could not locate entry for error %d in sysmessages.
2759 | 0 | CREATE SCHEMA failed due to previous errors.
2760 | 16 | Specified owner name '%.*ls' either does not exist or you do not have permission to use it.
2761 | 16 | The ROWGUIDCOL property can only be specified on the uniqueidentifier data type.
2762 | 16 | sp_setapprole was not invoked correctly. Refer to the documentation for more information.
2763 | 16 | Could not find application role '%.*ls'.
2764 | 16 | Incorrect password supplied for application role '%.*ls'.
2765 | 15 | Could not locate statistics for column '%.*ls' in the system catalogs.
2766 | 16 | The definition for user-defined data type '%.*ls' has changed.
2767 | 15 | Could not locate statistics '%.*ls' in the system catalogs.
2768 | 15 | Statistics for %ls '%.*ls'.
2769 | 15 | Column '%.*ls'. Cannot create statistics on a column of data type %ls.
2770 | 16 | The SELECT INTO statement cannot have same source and destination tables.
2771 | 16 | Cannot create statistics on table '%.*ls'. This table is a virtual system table.
2809 | 18 | The request for %S_MSG '%.*ls' failed because '%.*ls' is a %S_MSG object.
2812 | 16 | Could not find stored procedure '%.*ls'.


Errors 3000 - 3999

Error | Severity | Description
3009 | 16 | Could not insert a backup or restore history/detail record in the msdb database. This may indicate a problem with the msdb database. The backup/restore operation was still successful.
3013 | 16 | Backup or restore operation terminating abnormally.
3014 | 10 | Backup or restore operation successfully processed %d pages in %d.%03d seconds (%d.%03d MB/sec).
3015 | 10 | %hs is not yet implemented.
3016 | 16 | File '%ls' of database '%ls' has been removed or shrunk since this backup or restore operation was interrupted. The operation cannot be restarted.
3017 | 16 | Could not resume interrupted backup or restore operation. See the SQL Server error log for more information.
3018 | 16 | There is no interrupted backup or restore operation to restart. Reissue the statement without the RESTART clause.
3019 | 16 | The checkpoint file was for a different backup or restore operation. Reissue the statement without the RESTART clause.
3020 | 16 | The backup operation cannot be restarted as the log has been truncated. Reissue the statement without the RESTART clause.
3021 | 16 | Cannot perform a backup or restore operation within a transaction.
3023 | 16 | Backup, CHECKALLOC, bulk copy, SELECT INTO, and file manipulation (such as CREATE FILE) operations on a database must be serialized. Reissue the statement after the current backup, CHECKALLOC, or file manipulation operation is completed.
3024 | 16 | You can only perform a full backup of the master database. Use BACKUP DATABASE to back up the entire master database.
3025 | 16 | Missing database name. Reissue the statement specifying a valid database name.
3026 | 16 | Could not find filegroup ID %d in sysfilegroups for database '%ls'.
3027 | 16 | Could not find filegroup '%.*ls' in sysfilegroups for database '%.*ls'.
3028 | 16 | Operation checkpoint file is invalid. Could not restart operation. Reissue the statement without the RESTART option.
3029 | 16 | Database file '%ls' is subject to logical recovery and must be among the files to be backed up as part of the file or filegroup backup.
3030 | 16 | Database file '%ls' is subject to logical recovery and must be among the files to be restored.
3031 | 16 | The statement has inconsistent or conflicting options. Remove the conflicting option and reissue the statement.
3032 | 16 | One or more of the options is not supported for this statement. Review the documentation for supported options.
3033 | 16 | BACKUP DATABASE cannot be used on a database opened in emergency mode.
3034 | 16 | No files were selected to be processed. You may have selected one or more filegroups that have no members.
3035 | 16 | Cannot perform a differential backup for database '%ls', because a current database backup does not exist. Reissue the statement omitting the WITH DIFFERENTIAL option.
3036 | 16 | Database '%ls' is in warm-standby state (set by executing RESTORE WITH STANDBY) and cannot be backed up until the entire load sequence is completed.
3101 | 16 | Database in use. The system administrator must have exclusive use of the database to run the restore operation.
3106 | 16 | The specified file '%ls' is in an obsolete backup database format (version %d) and cannot be upgraded to current server version %d.
3108 | 16 | RESTORE DATABASE must be used in single user mode when trying to restore the master database.
3110 | 14 | Only members of the sysadmin role or the database owner of '%.*ls' can run RESTORE DATABASE.
3112 | 16 | Cannot restore any database other than master when the server is in single user mode.
3113 | 21 | The database owner (DBO) does not have an entry in sysusers in database '%.*ls'.
3114 | 21 | Database '%.*ls' does not have an entry in sysdatabases.
3115 | 10 | User '%.*ls' in database '%.*ls' has SUID %d, which is the same as the SUID of the database owner (as defined in sysdatabases). User '%.*ls' will be given SUID %d.
3116 | 10 | When all restore transactions have been completed for database '%.*ls', user '%.*ls' should be given the next available SUID.
3117 | 10 | Database '%.*ls' already has a user with SUID %d.
3120 | 16 | The database you are attempting to restore was backed up under a different sort order ID (%d) than the one currently running on this server (%d), and at least one of them is a non-binary sort order.
3123 | 16 | Invalid database name '%.*ls' specified for backup or restore operation.
3127 | 16 | Temporary Message: The backup set does not contain pages for file '%ls'.
3128 | 16 | File '%ls' has an unsupported page size (%d).
3129 | 16 | Temporary Message: File '%ls' has changed size from %d to %d bytes.
3132 | 16 | The RAID set for database '%ls' is missing member number %d.
3133 | 16 | The volume on device '%ls' is not a member of the media family.
3135 | 16 | Cannot use the backup set in file '%ls' for this restore operation.
3136 | 16 | Cannot apply the differential backup on device '%ls' to database '%ls'.
3138 | 16 | One or more files in the backup set are no longer part of database '%ls'.
3140 | 16 | Could not adjust the space allocation for file '%ls'.
3141 | 16 | The database to be restored was named '%ls'. Reissue the statement using the WITH REPLACE option to overwrite the '%ls' database.
3142 | 16 | One or more devices or files already exist. Reissue the statement using the WITH REPLACE option to overwrite these files and devices.
3143 | 16 | The data set on device '%ls' is not a SQL Server backup set.
3144 | 16 | File '%.*ls' was not backed up in file %d on device '%ls'. The file cannot be restored from this backup set.
3145 | 16 | The STOPAT option is not supported for RESTORE DATABASE. You can use the STOPAT option with RESTORE LOG.
3146 | 16 | None of the newly-restored files had been modified after the backup was taken, so no further recovery actions are required. The database is now available for use.
3147 | 16 | Backup and restore operations are not allowed on database tempdb.
3148 | 16 | Media recovery for ALTER DATABASE is not yet implemented. The database cannot be rolled forward.
3149 | 16 | The database you are attempting to restore was backed up under a different Unicode locale ID (%d) or Unicode comparison style (%d) than the Unicode locale ID (%d) or Unicode comparison style (%d) currently running on this server.
3150 | 10 | The master database has been successfully restored. Shutting down SQL Server.
3151 | 21 | The master database failed to restore. Use the rebuildm utility to rebuild the master database. Shutting down SQL Server.
3152 | 16 | Cannot overwrite file '%ls' because it is marked as read-only.
3153 | 16 | The database is already fully recovered.
3154 | 16 | The backup set holds a backup of a database other than the existing '%ls' database.
3155 | 16 | The RESTORE operation cannot proceed because one or more files have been added or dropped from the database since the backup set was created.
3156 | 16 | The file '%ls' cannot be used by RESTORE. Consider using the WITH MOVE option to identify a valid location for the file.
3157 | 16 | The logical file (%d) is named '%ls'. RESTORE will not overwrite it from '%ls'.
3158 | 16 | Could not create one or more files. Consider using the WITH MOVE option to identify valid locations.
3159 | 16 | The tail of the log for database '%ls' has not been backed up. Back up the log and rerun the RESTORE statement specifying the FILE clause.
3160 | 16 | Could not update primary file information in sysdatabases.
3161 | 16 | The primary file is unavailable. It must be restored or otherwise made available.
3162 | 16 | The database has on-disk structure version %d. The server supports version %d and can only restore such a database that was inactive when it was backed up. This database was not inactive.
3163 | 16 | The transaction log was damaged. All data files must be restored before RESTORE LOG can be attempted.
3164 | 16 | Cannot roll forward the database with on-disk structure version %d. The server supports version %d. Reissue the RESTORE statement WITH RECOVERY.
3165 | 16 | Could not adjust the replication state of database '%ls'. The database was successfully restored, however its replication state is indeterminate. See “Troubleshooting Replication” in this volume.
3166 | 16 | RESTORE DATABASE could not drop database '%ls'. Drop the database and then reissue the RESTORE DATABASE statement.
3167 | 16 | RESTORE could not start database '%ls'.
3201 | 16 | Cannot open backup device '%ls'. Device error or device off-line. See the SQL Server error log for more details.
3202 | 16 | Write on '%ls' failed, status = %ld. See the SQL Server error log for more details.
3203 | 16 | Read on '%ls' failed, status = %ld. See the SQL Server error log for more details.
3204 | 16 | Operator aborted backup or restore. See the error messages returned to the console for more details.
3205 | 16 | Too many backup devices specified for backup or restore; only %d are allowed.
3206 | 16 | No entry in sysdevices for backup device '%.*ls'. Update sysdevices and rerun statement.
3207 | 16 | Backup or restore requires at least one backup device. Rerun your statement specifying a backup device.
3208 | 16 | Unexpected end of file while reading beginning of backup set. Confirm that the media contains a valid SQL Server backup set, and see the console error log for more details.
3209 | 16 | '%.*ls' is not a backup device. Check sysdevices.
3211 | 10 | %d percent %hs.
3217 | 16 | Invalid value specified for %ls parameter.
3221 | 16 | The ReadFileEx system function executed on file '%ls' only read %d bytes, expected %d.
3222 | 16 | The WriteFileEx system function executed on file '%ls' only wrote %d bytes, expected %d.
3224 | 16 | Could not create worker thread.
3227 | 16 | The volume on device '%ls' is a duplicate of stripe set member %d.
3229 | 16 | Request for device '%ls' timed out.
3230 | 16 | Operation on device '%ls' exceeded retry count.
3234 | 16 | File '%.*ls' is not a database file for database '%ls'.
3235 | 16 | File '%ls' is not part of database '%ls'. You can only list files that are members of this database.
3237 | 16 | Option not supported for Named Pipe-based backup sets.
3239 | 16 | The backup set on device '%ls' uses a feature of the Microsoft Tape Format not supported by SQL Server.
3241 | 16 | The media family on device '%ls' is incorrectly formed. SQL Server cannot process this media family.
3242 | 16 | The file on device '%ls' is not a valid Microsoft Tape Format backup set.
3243 | 16 | The media family on device '%ls' was created using Microsoft Tape Format version %d.%d. SQL Server supports version %d.%d.
3244 | 16 | Descriptor block size exceeds %d bytes. Use a shorter name and/or description string and retry the operation.
3245 | 16 | Could not convert a string to or from Unicode, %ls.
3246 | 16 | The media family on device '%ls' is marked as nonappendable. Reissue the statement using the INIT option to overwrite the media.
3247 | 16 | The volume on device '%ls' has the wrong media sequence number (%d). Remove it and insert volume %d.
3248 | 25 | >>> VOLUME SWITCH <<< (not for output!)
3249 | 16 | The volume on device '%ls' is a continuation volume for the backup set. Remove it and insert the volume holding the start of the backup set.
3250 | 16 | The value '%d' is not within range for the %ls parameter.
3251 | 10 | The RAID stream on device '%ls' has been finished. The device will now be reused for one of the remaining RAID streams.
3252 | 16 | Passwords on media and/or data sets are not supported in this release of SQL Server.
3253 | 16 | The block size parameter must supply a value that is a power of 2.
3254 | 16 | The volume on device '%ls' is empty.
3255 | 16 | The data set on device '%ls' is a SQL Server backup set not compatible with this version of SQL Server.
3256 | 16 | The backup set on device '%ls' was terminated while it was being created and is incomplete. RESTORE sequence is terminated abnormally.
3257 | 16 | There is insufficient free space on disk volume '%ls' to create the database. The database requires %I64u additional free bytes, while only %I64u bytes are available.
3258 | 16 | The volume on device '%ls' belongs to a different media set.
3259 | 16 | The volume on device '%ls' is not part of a multifamily (RAID) media set. Use WITH FORMAT to form a new RAID set.
3260 | 16 | An internal buffer has become full.
3261 | 16 | SQL Server cannot use the virtual device configuration.
3262 | 10 | The backup set is valid.
3263 | 16 | Cannot use the volume on device '%ls' as a continuation volume. It is sequence number %d of family %d for the current media set. Insert a new volume, or sequence number %d of family %d for the current set.
3264 | 16 | The operation did not proceed far enough to allow RESTART. Reissue the statement without the RESTART qualifier.
3265 | 16 | The login has insufficient authority. Membership of the sysadmin role is required to use VIRTUAL_DEVICE with BACKUP or RESTORE.
3266 | 10 | The Microsoft Tape Format (MTF) soft filemark database on backup device '%ls' cannot be read, inhibiting random access.
3267 | 16 | Insufficient resources to create UMS scheduler.
3268 | 16 | Cannot use the backup file '%ls' because it was originally formatted with sector size %d and is now on a device with sector size %d.
3269 | 16 | Cannot restore the file '%ls' because it was originally written with sector size %d; '%ls' is now on a device with sector size %d.
3270 | 16 | An internal consistency error occurred. Contact Technical Support for assistance.
3271 | 16 | Nonrecoverable I/O error occurred on file '%ls'.
3272 | 16 | The '%ls' device has a hardware sector size of %d, but the block size parameter specifies an incompatible override value of %d. Reissue the statement using a compatible block size.
3301 | 21 | Invalid log record found in the transaction log (logop %d).
3307 | 21 | Process %d was expected to hold logical lock on page %S_PGID.
3313 | 21 | Error while redoing logged operation in database '%.*ls'. Error at log record ID %S_LSN.
3314 | 21 | Error while undoing logged operation in database '%.*ls'. Error at log record ID %S_LSN.
3405 | 10 | Recovering database '%.*ls'.
3406 | 10 | %d transactions rolled forward in database '%.*ls' (%d).
3407 | 10 | %d transactions rolled back in database '%.*ls' (%d).
3408 | 10 | Recovery complete.
3413 | 21 | Database ID %d. Could not mark database as suspect. Getnext NC scan on sysdatabases.dbid failed.
3414 | 10 | Database '%.*ls' (database ID %d) could not recover. Contact Technical Support.
3415 | 16 | Read-only database '%.*ls' must be made writable before it can be upgraded.
3417 | 21 | Cannot recover the master database. Exiting.
3429 | 10 | Warning: The outcome of transaction %S_XID, named '%.*ls' in database '%.*ls' (database ID %d), could not be determined because the coordinating database (database ID %d) could not be opened. The transaction was assumed to be committed.
3430 | 10 | Warning: Could not determine the outcome of transaction %S_XID, named '%.*ls' in database '%.*ls' (with ID %d) because the coordinating database (ID %d) did not contain the outcome. The transaction was assumed to be committed.
3431 | 21 | Could not recover database '%.*ls' (database ID %d) due to unresolved transaction outcomes.
3432 | 16 | Warning: syslanguages is missing.
3433 | 16 | Name is truncated to '%.*ls'. The maximum name length is %d.
3434 | 20 | Cannot change sort order or locale. Server shutting down. Restart SQL Server to continue with sort order unchanged.
3435 | 20 | Sort order or locale cannot be changed because user objects or user databases exist.
3436 | 20 | Cannot rebuild index ID %d for the '%.*ls' table in the '%.*ls' database.
3437 | 21 | Error recovering database '%.*ls'. Could not connect to MSDTC to check the completion status of transaction %S_XID.
3438 | 10 | Database '%.*ls' (database ID %d) failed to recover because transaction first LSN is not equal to LSN in checkpoint. Contact Technical Support.
3439 | 10 | Database '%.*ls' (database ID %d). The DBCC RECOVERDB statement failed due to previous errors.
3440 | 21 | Database '%.*ls' (database ID %d). The DBCC RECOVERDB statement can only be run after a RESTORE statement that used the WITH NORECOVERY option.
3441 | 21 | Database '%.*ls' (database ID %d). The RESTORE statement could not access file '%ls'. Error was '%ls'.
3442 | 21 | Database '%.*ls' (database ID %d). The size of the undo file is insufficient.
3443 | 21 | Database '%.*ls' (database ID %d) was marked for standby or read-only use, but has been modified. The RESTORE LOG statement cannot be performed.
3444 | 21 | Database '%.*ls' (database ID %d). Could not find start of previous recovery operation. The RESTORE LOG statement cannot be performed.
3445 | 21 | Database '%.*ls' (database ID %d). The file '%ls' is not a valid undo file.
3446 | 16 | Primary file not available for database '%.*ls'.
3447 | 16 | Could not activate or scan all of the log files for database '%.*ls'.
3448 | 21 | Could not undo log record %S_LSN, for transaction ID %S_XID, on page %S_PGID, database '%.*ls' (database ID %d). Page information: LSN = %S_LSN, type = %ld. Log information: OpCode = %ld, context %ld.
3449 | 21 | An error has occurred indicating potential database corruption. SQL Server is shutting down so that recovery can be performed on database ID %d.
3450 | 10 | Recovery progress on database '%.*ls' (%d): %d percent.
3451 | 16 | Recovery has failed because reexecution of CREATE INDEX found inconsistencies between target filegroup '%ls' (%d) and source filegroup '%ls' (%d). Restore both filegroups before attempting further RESTORE LOG operations.
3452 | 10 | Recovery of database '%.*ls' (%d) detected possible identity value inconsistency in table ID %d. Run DBCC CHECKIDENT ('%.*ls').
3453 | 21 | Recovery has failed because a nonlogged operation could not be redone. Use the RESTORE statement to restore all data in filegroup '%ls' (%d) to a point beyond the nonlogged changes.
3501 | 21 | Could not find row in sysdatabases for database ID %d at checkpoint time.
3505 | 14 | Only the owner of database '%.*ls' can run the CHECKPOINT statement.
3508 | 25 | Could not get an exclusive lock on the database '%.*ls'. Make sure that no other users are currently using this database, and rerun the CHECKPOINT statement.
3509 | 14 | Could not set database '%.*ls' %ls read-only user mode because you could not exclusively lock the database.
3510 | 16 | Database '%.*ls' cannot be changed from read-only because the primary and/or log file(s) are not writable.
3604 | 10 | Duplicate key was ignored.
3605 | 10 | Duplicate row was ignored.
3606 | 10 | Arithmetic overflow occurred.
3607 | 10 | Division by zero occurred.
3608 | 16 | Cannot allocate a GUID for the token.
3612 | 10 | %hsSQL Server Execution Times:%hs CPU time = %lu ms, elapsed time = %lu ms.
3613 | 10 | SQL Server parse and compile time: %hs CPU time = %lu ms, elapsed time = %lu ms.
3615 | 10 | Table '%.*ls'. Scan count %d, logical reads %d, physical reads %d, read-ahead reads %d.
3618 | 10 | The transaction has been terminated.
3619 | 10 | Could not write a CHECKPOINT record in database ID %d because the log is out of space.
3620 | 10 | Automatic checkpointing is disabled in database '%.*ls' because the log is out of space. It will continue when the database owner successfully checkpoints the database. Free up some space or extend the database and then run the CHECKPOINT statement.
3621 | 10 | The statement has been terminated.
3622 | 10 | A domain error occurred.
3623 | 10 | A transaction on a no_log table was undone. See the SQL Server errorlog for details.
3625 | 20 | '%hs' is not yet implemented.
3627 | 16 | Could not create worker thread.
3701 | 11 | Cannot drop the %S_MSG '%.*ls', because it does not exist in the system catalog.
3702 | 16 | Cannot drop the %S_MSG '%.*ls' because it is currently in use.
3704 | 16 | Only the owner or members of the sysadmin role can drop the %S_MSG '%.*ls'.
3705 | 16 | Cannot use DROP %ls with '%.*ls' because '%.*ls' is a %S_MSG. Use DROP %ls.
3708 | 16 | Cannot drop the %S_MSG '%.*ls' because it is a system %S_MSG.
3716 | 16 | The %S_MSG '%.*ls' cannot be dropped because it is bound to one or more %S_MSG.
3718 | 11 | Could not drop index '%.*ls' because the table or clustered index entry cannot be found in the sysindexes system table.
3723 | 16 | An explicit DROP INDEX is not allowed on index '%.*ls'. It is being used for %ls constraint enforcement.
3724 | 16 | Cannot drop the %S_MSG '%.*ls' because it is published for replication.
3725 | 16 | The constraint '%.*ls' is being referenced by table '%.*ls', foreign key constraint '%.*ls'.
3726 | 16 | Could not drop object '%.*ls' because it is referenced by a FOREIGN KEY constraint.
3727 | 10 | Could not drop constraint. See previous errors.
3728 | 16 | '%.*ls' is not a constraint.
3733 | 16 | Constraint '%.*ls' does not belong to table '%.*ls'.
3736 | 16 | Cannot drop the %S_MSG '%.*ls' because it is being used for distribution.
3737 | 16 | Could not delete file '%ls'. See the SQL Server error log for more information.
3738 | 16 | Deleting database file '%ls'.
3739 | 15 | Cannot %ls the index '%.*ls' because it is not a statistics collection.
3740 | 16 | Cannot drop the %S_MSG '%.*ls' because at least part of the table resides on a read-only filegroup.
3902 | 13 | The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION.
3903 | 13 | The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION.
3904 | 21 | Cannot unsplit logical page %S_PGID in object '%.*ls', in database '%.*ls'. Both pages together contain more data than will fit on one page.
3906 | 16 | Could not run BEGIN TRANSACTION in database '%.*ls' because the database is read-only.
3908 | 16 | Could not run BEGIN TRANSACTION in database '%.*ls' because the database is in bypass recovery mode.
3909 | 16 | Session binding token is invalid or corrupt.
3910 | 16 | Transaction context in use by another session.
3912 | 16 | Cannot bind using an XP token while the server is not in an XP call.
3914 | 16 | The data type '%s' is invalid for transaction names or savepoint names. Allowed data types are char, varchar, nchar, or nvarchar.
3915 | 16 | Cannot use the ROLLBACK statement within an INSERT-EXEC statement.
3916 | 16 | Cannot use the COMMIT statement within an INSERT-EXEC statement unless BEGIN TRANSACTION is used first.
3917 | 16 | Session is bound to a transaction context that is in use. Other statements in the batch were ignored.


Errors 4000 - 4999

Error | Severity | Description
4003 | 21 | ODS error. Server is terminating this connection.
4004 | 16 | ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier.
4015 | 16 | Language requested in login '%.*ls' is not an official name on this SQL Server. Using server-wide default %.*ls instead.
4016 | 16 | Language requested in 'login %.*ls' is not an official name on this SQL Server. Using user default %.*ls instead.
4017 | 16 | Neither the language requested in 'login %.*ls' nor user default language %.*ls is an official language name on this SQL Server. Using server-wide default %.*ls instead.
4018 | 16 | User default language %.*ls is not an official language name on this SQL Server. Using server-wide default %.*ls instead.
4019 | 16 | Language requested in login '%.*ls' is not an official language name on this SQL Server. Login fails.
4020 | 16 | Default date order '%.*ls' for language %.*ls is invalid. Using mdy instead.
4027 | 16 | Mount tape for %hs of database '%ls'.
4028 | 16 | End of tape has been reached. Remove tape '%ls' and mount next tape for %hs of database '%ls'.
4030 | 10 | The medium on device '%ls' expires on %hs and cannot be overwritten.
4035 | 10 | Processed %d pages for database '%ls', file '%ls' on file %d.
4037 | 16 | User-specified volume ID '%ls' does not match the volume ID '%ls' of the device '%ls'.
4038 | 16 | Cannot find file ID %d on device '%ls'.
4060 | 11 | Cannot open database requested in login '%.*ls'. Login fails.
4061 | 11 | Cannot open either database requested in login (%.*ls) or user default database (%.*ls). Using master database instead.
4062 | 11 | Cannot open user default database '%.*ls'. Using master database instead.
4063 | 11 | Cannot open database requested in login (%.*ls). Using user default '%.*ls' instead.
4207 | 16 | BACKUP LOG is not allowed while the select into/bulkcopy option is enabled. Use BACKUP DATABASE or disable the option using sp_dboption.
4208 | 16 | BACKUP LOG is not allowed while the trunc. log on chkpt. option is enabled. Use BACKUP DATABASE or disable the option using sp_dboption.
4212 | 16 | Cannot back up the log of the master database. Use BACKUP DATABASE instead.
4213 | 16 | Cannot allow BACKUP LOG because file '%ls' has been subjected to nonlogged updates and cannot be rolled forward. Perform a full database, or differential database, backup.
4214 | 10 | There is no current database backup. This log backup cannot be used to roll forward a preceding database backup.
4215 | 10 | The log was not truncated because records at the beginning of the log are pending replication. Ensure the Log Reader Agent is running or use sp_repldone to mark transactions as distributed.
4301 | 16 | Database in use. The system administrator must have exclusive use of the database to restore the log.
4304 | 16 | A USER ATTENTION signal raised during RESTORE LOG is being ignored until the current restore completes.
4305 | 16 | This backup set cannot be restored because the database has not been rolled forward far enough. You must first restore all earlier logs before restoring this log.
4306 | 16 | The preceding restore operation did not specify WITH NORECOVERY or WITH STANDBY. Restart the restore sequence, specifying WITH NORECOVERY or WITH STANDBY for all but the final step.
4312 | 16 | Only members of the sysadmin role or owner of database '%.*ls' can run RESTORE LOG.
4316 | 16 | Can only RESTORE LOG in the master database if SQL Server is in single user mode.
4318 | 16 | File '%ls' has been rolled forward to LSN %.*ls. This log terminates at LSN %.*ls, which is too early to apply the WITH RECOVERY option. Reissue the RESTORE LOG statement WITH NORECOVERY.
4319 | 16 | Cannot use the STOPAT and NORECOVERY options together. Reissue the statement specifying WITH RECOVERY to roll the database forward to a specific point in time.
4320 | 16 | File '%ls' was only partially restored by a database or file restore. The entire file must be successfully restored before applying the log.
4321 | 16 | The minimum recovery point of the database is beyond the specified point-in-time. Reissue this statement without specifying STOPAT.
4322 | 10 | This log file contains records logged before the designated point-in-time. The database is being left in load state so you can apply another log file.
4323 | 16 | The database is marked suspect. Transaction logs cannot be restored. Use RESTORE DATABASE to recover the database.
4324 | 10 | Backup history older than %ls has been deleted.
4325 | 16 | Could not delete entries for backup set ID '%ls'.
4403 | 16 | View '%.*ls' is not updatable because it contains aggregates.
4404 | 16 | View '%.*ls' is not updatable because the definition contains the DISTINCT clause.
4405 | 16 | View '%.*ls' is not updatable because the FROM clause names multiple tables.
4406 | 16 | View '%.*ls' is not updatable because a column of the view is derived or constant.
4408 | 19 | The query and the views in it exceed the limit of %d tables.
4413 | 16 | Could not use view '%.*ls' because of previous binding errors.
4414 | 16 | Could not allocate ancillary table for view resolution. The maximum number of tables in a query (%d) was exceeded.
4415 | 16 | View '%.*ls' is not updatable because either it was created WITH CHECK OPTION or it spans a view created WITH CHECK OPTION and the target table is referenced multiple times in the resulting query.
4416 | 16 | View '%.*ls' is not updatable because the definition contains a UNION operator.
4417 | 16 | Derived table '%.*ls' is not updatable because the definition contains a UNION operator.
4418 | 16 | Derived table '%.*ls' is not updatable because it contains aggregates.
4419 | 16 | Derived table '%.*ls' is not updatable because the definition contains the DISTINCT clause.
4420 | 16 | Derived table '%.*ls' is not updatable because the FROM clause names multiple tables.
4421 | 16 | Derived table '%.*ls' is not updatable because a column of the derived table is derived or constant.
4424 | 16 | Joined tables cannot be specified in a query containing outer join operators. View '%.*ls' contains joined tables.
4425 | 16 | Cannot specify outer join operators in a query containing joined tables. View '%.*ls' contains outer join operators.
4427 | 16 | The view '%.*ls' is not updatable because the definition contains the TOP clause.
4428 | 16 | The derived table '%.*ls' is not updatable because the definition contains the TOP clause.
4429 | 16 | View '%.*ls' contains a self-reference. Views cannot reference themselves directly or indirectly.
4430 | 10 | Warning: Index hints supplied for view '%.*ls' will be ignored.
4501 | 16 | View '%.*ls' has more columns defined than column names given.
4502 | 16 | View '%.*ls' has more column names specified than columns defined.
4504 | 16 | Could not perform CREATE TABLE because there was not enough space to allocate memory for the table.
4505 | 16 | CREATE VIEW failed because column '%.*ls' in view '%.*ls' exceeds the maximum of %d columns.
4506 | 10 | Column names in each view must be unique. Column name '%.*ls' in view '%.*ls' is specified more than once.
4508 | 16 | Views are not allowed on temporary tables. Table names that begin with '#' denote temporary tables.
4510 | 16 | Could not perform CREATE VIEW because WITH CHECK OPTION was specified and the view is not updatable.
4511 | 16 | Could not perform CREATE VIEW because no column name was specified for column %d.
4602 | 14 | Only members of the sysadmin role can grant or revoke the CREATE DATABASE permission.
4603 | 14 | Only the owner of the current database can grant or revoke this permission.
4604 | 16 | There is no such user or group '%.*ls'.
4606 | 16 | Granted or revoked privilege %ls is not compatible with object.
4610 | 16 | You can only grant or revoke permissions on objects in the current database.
4611 | 16 | To revoke grantable privileges, specify the CASCADE option with REVOKE.
4613 | 16 | Grantor does not have GRANT permission.
4615 | 16 | Invalid column name '%.*ls'.
4617 | 16 | Cannot grant, deny or revoke permissions to or from special roles.
4618 | 16 | You do not have permission to use %.*ls in the AS clause.
4619 | 16 | CREATE DATABASE permission can only be granted in the master database.
4701 | 11 | Could not truncate table '%.*ls' because this table does not exist in database '%.*ls'.
4706 | 17 | Could not truncate table '%.*ls' because there is not enough room in the log to record the deallocation of all the index and data pages.
4707 | 16 | Could not truncate object '%.*ls' because it or one of its indexes resides on a READONLY filegroup.
4708 | 16 | Could not truncate object '%.*ls' because it is not a table.
4709 | 16 | You are not allowed to truncate the system table '%.*ls'.
4710 | 16 | Only the owner or members of the sysadmin role can truncate table '%.*ls'.
4711 | 16 | Cannot truncate table '%.*ls' because it is published for replication.
4712 | 16 | Cannot truncate table '%.*ls' because it is being referenced by a FOREIGN KEY constraint.
4801 | 20 | Bulk_main: The opentable system function on BULK INSERT table failed. Database ID %d, name '%.*ls'.
4803 | 21 | Received invalid row length %d from bcp client. Maximum row size is %d.
4804 | 21 | Premature end-of-message while reading current row from host. Host program may have terminated.
4805 | 17 | The front-end tool you are using does not support the feature of bulk insert from host. Use the proper tools for this command.
4807 | 21 | Received invalid row length %d from bcp client. Minimum row size is %d.
4810 | 16 | Expected the TEXT token in data stream for bulk copy of text or image data.
4811 | 16 | Expected the column offset in data stream for bulk copy of text or image data.
4812 | 16 | Expected the row offset in data stream for bulk copy of text or image data.
4813 | 16 | Expected the text length in data stream for bulk copy of text, ntext, or image data.
4815 | 21 | Received invalid column length from bcp client.
4817 | 16 | Could not bulk insert. Invalid sorted column '%.*ls'. Assuming data stream is not sorted.
4818 | 16 | Could not bulk insert. Sorted column '%.*ls' was specified more than once. Assuming data stream is not sorted.
4819 | 16 | Could not bulk insert. Bulk data stream was incorrectly specified as sorted.
4820 | 16 | Could not bulk insert. Unknown version of format file '%s'.
4821 | 16 | Could not bulk insert. Error reading the number of columns from format file '%s'.
4822 | 16 | Could not bulk insert. Invalid number of columns in format file '%s'.
4823 | 16 | Could not bulk insert. Invalid column number in format file '%s'.
4824 | 16 | Could not bulk insert. Invalid data type for column number %d in format file '%s'.
4825 | 16 | Could not bulk insert. Invalid prefix for column number %d in format file '%s'.
4826 | 16 | Could not bulk insert. Invalid column length for column number %d in format file '%s'.
4827 | 16 | Could not bulk insert. Invalid column terminator for column number %d in format file '%s'.
4828 | 16 | Could not bulk insert. Invalid destination table column number for source column %d in format file '%s'.
4829 | 16 | Could not bulk insert. Error reading destination table column name for source column %d in format file '%s'.
4830 | 10 | Bulk Insert: DataFileType was incorrectly specified as char. DataFileType will be assumed to be widechar because the data file has a Unicode signature.
4831 | 10 | Bulk Insert: DataFileType was incorrectly specified as widechar. DataFileType will be assumed to be char because the data file does not have a Unicode signature.
4832 | 16 | Bulk Insert: Unexpected end-of-file (EOF) encountered in data file.
4833 | 16 | Bulk Insert: Version mismatch between the provider dynamic link library and the server executable.
4834 | 16 | Permission denied. Only members of the sysadmin role can use the BULK INSERT statement.
4835 | 16 | Bulk copying into a table with computed columns is not supported for downlevel clients.
4836 | 10 | Warning: Table '%s' is published for merge replication. Reinitialize affected subscribers or execute sp_addtabletocontents to ensure that data added is included in the next sychronization.
4837 | 16 | Error: Cannot bulk copy into a table '%s' enabled for immediate-updating subscriptions
4849 | 16 | Could not import table '%ls'. Error %d.
4850 | 10 | Data import: Table '%ls' is already locked by another user.
4851 | 10 | Data import: Table '%ls' already has data. Skipping to next table.
4852 | 10 | Data import: Table '%ls' does not exist or it is not a user table.
4853 | 10 | %hs
4854 | 21 | %hs
4860 | 16 | Could not bulk insert. File '%ls' does not exist.
4861 | 16 | Could not bulk insert because file '%ls' could not be opened. Operating system error code %ls.
4862 | 16 | Could not bulk insert because file '%ls' could not be read. Operating system error code %ls.
4863 | 16 | Bulk insert data conversion error (truncation) for row %d, column %d (%ls).
4864 | 16 | Bulk insert data conversion error (type mismatch) for row %d, column %d (%ls).
4865 | 16 | Could not bulk insert because the maximum number of errors (%d) was exceeded.
4866 | 16 | Could not bulk insert because column too long in data file. Make sure FieldTerminator and RowTerminator were specified correctly.
4867 | 16 | Bulk insert data conversion error (overflow) for row %d, column %d (%ls).
4901 | 16 | ALTER TABLE only allows columns to be added that can contain nulls or have a DEFAULT definition specified. Column '%.*ls' cannot be added to table '%.*ls' because it does not allow nulls and does not specify a DEFAULT definition.
4902 | 11 | Cannot alter table '%.*ls' because this table does not exist in database '%.*ls'.
4909 | 16 | Cannot alter '%.*ls' because it is not a table.
4910 | 16 | Only the owner or members of the sysadmin role can alter table '%.*ls'.
4916 | 16 | Could not enable or disable the constraint. See previous errors.
4917 | 16 | Constraint '%.*ls' does not exist.
4920 | 16 | ALTER TABLE failed because trigger '%.*ls' on table '%.*ls' does not exist.
4921 | 16 | ALTER TABLE failed because trigger '%.*ls' does not belong to table '%.*ls'.
4922 | 16 | %ls %.*ls failed because %ls %.*ls accesses this column.
4923 | 16 | ALTER TABLE DROP COLUMN failed because '%.*ls' is the only data column in table '%.*ls'. A table must have at least one data column.
4924 | 16 | %ls failed because column '%.*ls' does not exist in table '%.*ls'.
4925 | 16 | ALTER TABLE ALTER COLUMN ADD ROWGUIDCOL failed because a column already exists in table '%.*ls' with ROWGUIDCOL property.
4926 | 16 | ALTER TABLE ALTER COLUMN DROP ROWGUIDCOL failed because a column does not exist in table '%.*ls' with ROWGUIDCOL property.
4927 | 16 | Cannot alter column '%.*ls' to be data type %.*ls.
4928 | 16 | Cannot alter column '%.*ls' because it is '%ls'.
4929 | 16 | Cannot alter the %S_MSG '%.*ls' because it is being published for replication.
4930 | 10 | Warning: Columns added to the replicated table %S_MSG '%.*ls' will be ignored by existing articles.
4931 | 16 | Cannot add columns to %S_MSG '%.*ls' because it is being published for merge replication.


Errors 5000 - 5999

Error | Severity | Description
5001 | 16 | User must be in the master database.
5002 | 16 | Database '%.*ls' does not exist. Check sysdatabases.
5004 | 16 | Database must be in state where it can be checkpointed to use ALTER DATABASE.
5005 | 10 | Extending database by %.2f MB on disk '%.*ls'.
5006 | 16 | Could not get exclusive use of %S_MSG '%.*ls' to perform the requested operation.
5008 | 16 | ALTER DATABASE option not implemented yet.
5009 | 16 | ALTER DATABASE failed. Some disk names listed in the statement were not found. Check that the names exist and are spelled correctly before rerunning the statement.
5011 | 14 | Only members of the sysadmin role or owner of database '%.*ls' can alter it.
5013 | 16 | The master and model databases cannot have files added to them. ALTER DATABASE was aborted.
5014 | 16 | The %S_MSG '%.*ls' does not exist in database '%.*ls'.
5015 | 16 | ALTER DATABASE failed. The total size specified must be 1 MB or greater.
5017 | 16 | ALTER DATABASE failed. Database '%.*ls' was not created with 'FOR LOAD' option.
5018 | 0 | File '%.*ls' modified in sysaltfiles. Delete old file after restarting SQL Server.
5019 | 16 | Could not find entry in sysaltfiles for file '%.*ls'.
5020 | 16 | The primary data or log file cannot be removed from a database.
5021 | 16 | MAXSIZE cannot be larger than the maximum database size of %ld MB.
5022 | 16 | Log file '%ls' for this database is already active.
5023 | 16 | Database must be put in bypass recovery mode to rebuild the log.
5024 | 16 | No entry found for the primary log file in sysfiles1. Could not rebuild the log.
5025 | 16 | The file '%ls' already exists. It should be renamed or deleted so that a new log file can be created.
5026 | 16 | Could not create a new log file with file '%.*ls'. See previous errors.
5027 | 16 | System databases master, model, and tempdb cannot have their logs rebuilt.
5028 | 16 | The system could not activate enough of the database to rebuild the log.
5029 | 10 | Warning: The log for database '%.*ls' has been rebuilt. Transactional consistency has been lost. DBCC CHECKDB should be run to validate physical consistency. Database options will have to be reset, and extra log files may need to be deleted.
5030 | 16 | The database could not be exclusively locked to perform the operation.
5031 | 16 | Cannot remove the file '%.*ls' because it is the only file in the DEFAULT filegroup.
5035 | 16 | Filegroup '%.*ls' already exists in this database.
5036 | 16 | MODIFY FILE failed. Specify logical name.
5037 | 16 | MODIFY FILE failed. Do not specify physical name.
5038 | 16 | MODIFY FILE failed. Only modify one file and one property at a time.
5039 | 16 | MODIFY FILE failed. Specified size is less than current size.
5040 | 16 | MODIFY FILE failed. Size is greater than MAXSIZE.
5041 | 16 | MODIFY FILE failed. File '%.*ls' does not exist.
5042 | 16 | The %S_MSG '%.*ls' cannot be removed because it is not empty.
5043 | 16 | The %S_MSG '%.*ls' cannot be found in %ls.
5044 | 10 | The %S_MSG '%.*ls' has been removed.
5045 | 16 | The %S_MSG already has the '%ls' property set.
5046 | 10 | The %S_MSG property '%ls' has been set.
5047 | 16 | Cannot change the READONLY property of the PRIMARY filegroup.
5048 | 16 | Cannot %ls file in read-only filegroup '%.*ls'.
5049 | 16 | Cannot extend file '%ls' using this syntax as it was not created with DISK INIT. Use ALTER DATABASE MODIFY FILE.
5050 | 16 | Cannot change the properties of empty filegroup '%.*ls'. The filegroup must contain at least one file.
5051 | 16 | Cannot have a filegroup with the name 'DEFAULT'.
5053 | 16 | The maximum of %ld filegroups per database has been exceeded.
5054 | 16 | Could not cleanup worktable IAM chains to allow shrink or remove file operation. Please try again when tempdb is idle.
5055 | 16 | Cannot %ls read-only file '%.*ls'.
5101 | 15 | You must supply parameters for the DISK %hs statement. Usage: %hs.
5102 | 15 | No such statement DISK %.*ls.
5103 | 16 | MAXSIZE cannot be less than SIZE for file '%ls'.
5104 | 16 | File '%.*ls' already used.
5105 | 16 | Device activation error. The physical file name '%.*ls' may be incorrect.
5106 | 15 | Parameter '%hs' requires value of data type '%hs'.
5107 | 15 | Value is wrong data type for parameter '%hs' (requires data type '%hs').
5109 | 16 | No such parameter '%.*ls'.
5116 | 14 | Permission denied. Only members of the sysadmin role can run DISK statements.
5117 | 16 | Could not run DISK statement. You must be in the master database to run this statement.
5122 | 10 | Each disk file size must be greater than or equal to 1 MB.
5123 | 16 | CREATE FILE encountered operating system error %ls while attempting to open or create the physical file '%.*ls'.
5126 | 16 | The logical device '%.*ls' does not exist in sysdevices.
5146 | 16 | The %hs of %d is out of range. It must be between %d and %d.
5148 | 16 | Could not set the file size to the desired amount. The operating system file size limit may have been reached.
5149 | 16 | MODIFY FILE encountered operating system error %ls while attempting to expand the physical file.
5150 | 16 | The size of a single log file must not be greater than 2 TB.
5151 | 16 | The %hs statement is obsolete and no longer supported.
5154 | 16 | Device '%.*ls' is not open.
5156 | 16 | Usage: DBCC DEVCONTROL(devname,ONLINE|OFFLINE)
5157 | 16 | I/O error encountered in the writelog system function during backout.
5158 | 10 | Warning: Media in device '%.*ls' may have been changed.
5159 | 16 | Operating system error %.*ls on device '%.*ls' during %ls.
5160 | 16 | Cannot take '%.*ls' offline because the database is in use.
5162 | 16 | Cannot find '%.*ls' in sysdatabases.
5163 | 16 | Cannot open '%.*ls' to take offline.
5164 | 16 | Usage: DBCC DBCONTROL(dbname,ONLINE|OFFLINE)
5165 | 16 | Cannot explicitly open or close master database.
5167 | 16 | Database '%.*ls' is already offline.
5168 | 16 | File '%.*ls' is on a network drive, which is not allowed.
5169 | 16 | FILEGROWTH cannot be greater than MAXSIZE for file '%.*ls'.
5170 | 16 | Cannot create file '%ls' because it already exists.
5171 | 16 | %.*ls is not a primary database file.
5172 | 16 | The header for file '%ls' is not a valid database file header. The %ls property is incorrect.
5173 | 16 | Cannot associate files with different databases.
5174 | 10 | Each file size must be greater than or equal to 512 KB.
5175 | 10 | The file '%.*ls' has been expanded to prevent recovery from failing. Contact the system administrator for further assistance.
5176 | 10 | The file '%.*ls' has been expanded beyond its maximum size to prevent recovery from failing. Contact the system administrator for further assistance.
5177 | 16 | Encountered an unexpected error while checking the sector size for file '%.*ls'. Check the SQL Server error log for more information.
5178 | 16 | Cannot use file '%.*ls' because it was originally formatted with sector size %d and is now on a device with sector size %d.
5179 | 16 | Cannot use file '%.*ls', which is on a device with sector size %d. SQL Server supports a maximum sector size of 4096 bytes.
5180 | 22 | Could not open FCB for invalid file ID %d in database '%.*ls'. Table or database may be corrupted.
5181 | 16 | Could not restart database '%.*ls'. Reverting back to old status.
5701 | 10 | Changed database context to '%.*ls'.
5702 | 10 | SQL Server is terminating this process.
5703 | 10 | Changed language setting to %.*ls.
5803 | 10 | Unknown config number (%d) in sysconfigures.
5805 | 16 | Too few locks specified. Minimum %d.
5807 | 16 | Recovery intervals above %d minutes not recommended. Use the RECONFIGURE WITH OVERRIDE statement to force this configuration.
5808 | 16 | Ad hoc updates to system catalogs not recommended. Use the RECONFIGURE WITH OVERRIDE statement to force this configuration.
5809 | 16 | Average time slices above %d milliseconds not recommended. Use the RECONFIGURE WITH OVERRIDE statement to force this configuration.
5810 | 16 | Valid values for the fill factor are 0 to 100.
5812 | 14 | Permission denied. Only members of the sysadmin role can run RECONFIGURE.
5823 | 16 | Cannot reconfigure SQL Server to use sort order ID %d, because the row for that sort order does not exist in syscharsets.
5824 | 16 | Cannot reconfigure SQL Server to use sort order ID %d, because the row for its underlying character set (ID %d) does not exist in syscharsets.
5825 | 16 | Cannot reconfigure the server's sort order because the syscharsets table does not exist. You must upgrade your server prior to attempting this.
5826 | 10 | You have just reconfigured SQL Server's sort order. Table indexes on columns of type char or varchar will be rebuilt when SQL Server is restarted.
5827 | 10 | By changing the default sort order, you have also reconfigured SQL Server's default character set.
5828 | 16 | User connections are limited to %d.
5829 | 16 | The specified user options value is invalid.
5830 | 10 | You have just reconfigured SQL Server's Unicode collation. Table indexes on columns of type nchar or nvarchar will be rebuilt when SQL Server is restarted.
5831 | 16 | Minimum server memory value (%d) must be less than or equal to the maximum value (%d).
5904 | 17 | Background checkpoint process suspended until locks are available.


Errors 6000 - 6999

Error | Severity | Description
6001 | 10 | SHUTDOWN is waiting for %d process(es) to complete.
6002 | 10 | SHUTDOWN is in progress. Log off.
6004 | 10 | SHUTDOWN can only be used by members of the sysadmin role.
6005 | 10 | SHUTDOWN is in progress.
6006 | 10 | Server shut down by request.
6007 | 10 | The SHUTDOWN statement cannot be executed within a transaction or by a stored procedure.
6101 | 16 | Process ID %d is not a valid process ID. Choose a number between 1 and %d.
6102 | 14 | Only members of the sysadmin role can use the KILL statement.
6103 | 17 | Could not do cleanup for the killed process. Received message %d.
6104 | 16 | Cannot use KILL to kill your own process.
6106 | 16 | Process ID %d is not an active process ID.
6107 | 14 | Only user processes can be killed.
6108 | 16 | KILL WITH COMMIT/ABORT can only be used with waiting distributed transactions.
6401 | 16 | Cannot roll back %.*ls. No transaction or savepoint of that name was found.


Errors 7000 - 7999

Error | Severity | Description
7102 | 20 | SQL Server Internal Error. Text manager cannot continue with current statement.
7105 | 22 | Page %S_PGID, slot %d for text, ntext, or image node does not exist.
7116 | 25 | Offset %d is not in the range of available text, ntext, or image data.
7122 | 16 | Invalid text, ntext, or image pointer type. Must be binary(16).
7123 | 16 | Invalid text, ntext, or image pointer value %hs.
7124 | 16 | The offset and length specified in the READTEXT statement is greater than the actual data length of %ld.
7125 | 16 | The text, ntext, or image pointer value conflicts with the column name specified.
7126 | 16 | The text, ntext, or image pointer value references a data page with an invalid text, ntext, or image status.
7127 | 16 | The text, ntext, or image pointer value references a data page with an invalid timestamp.
7128 | 16 | The text, ntext, or image pointer value references a data page that is no longer allocated.
7130 | 16 | %ls WITH NO LOG is not valid at this time. Use sp_dboption to set the 'select into/bulkcopy' option on for database '%.*ls'.
7133 | 16 | NULL textptr (text, ntext, or image pointer) passed to %ls function.
7135 | 16 | Deletion length %ld is not in the range of available text, ntext, or image data.
7136 | 16 | %ls WITH NO LOG is not valid when the column is being replicated.
7139 | 16 | Length of text, ntext, or image data (%ld) to be replicated exceeds configured maximum %ld.
7140 | 16 | Text has been padded with 0 due to dirty read.
7141 | 16 | Must create orphaned text inside a user transaction.
7142 | 16 | Must drop orphaned text before committing the transaction.
7143 | 16 | Invalid locator de-referenced.
7201 | 17 | Could not execute procedure on remote server '%.*ls' because SQL Server is not configured for remote access. Ask your system administrator to reconfigure SQL Server to allow remote access.
7202 | 11 | Could not find server '%.*ls' in sysservers. Execute sp_addlinkedserver to add the server to sysservers.
7204 | 20 | Could not obtain or use interface %hs from Microsoft OLE DB provider for ODBC. Microsoft OLE DB provider for ODBC not registered. Remote procedures cannot be executed.
7212 | 16 | Could not execute procedure '%.*ls' on remote server '%.*ls'.
7213 | 20 | Could not set up parameter for remote server '%.*ls'.
7214 | 16 | Remote procedure time out of %d seconds exceeded. Remote procedure '%.*ls' is canceled.
7221 | 16 | Could not relay results of procedure '%.*ls' from remote server '%.*ls'.
7300 | 16 | OLE DB error trace [%ls].
7301 | 16 | Could not obtain a required interface from OLE DB provider '%ls'.
7302 | 16 | Could not create an instance of OLE DB provider '%ls'.
7303 | 16 | Could not initialize data source object of OLE DB provider '%ls'. %ls
7304 | 16 | Could not create a new session on OLE DB provider '%ls'.
7305 | 16 | Could not create a statement object using OLE DB provider '%ls'.
7306 | 16 | Could not open table '%ls' from OLE DB provider '%ls'. %ls
7307 | 16 | Could not obtain the data source of a session from OLE DB provider '%ls'. This action must be supported by the provider.
7310 | 16 | Could not obtain the schema options for OLE DB provider '%ls'. The provider supports the interface, but returns a failure code when it is used.
7311 | 16 | Could not obtain the schema rowset for OLE DB provider '%ls'. The provider supports the interface, but returns a failure code when it is used.
7312 | 16 | Invalid use of schema and/or catalog for OLE DB provider '%ls'. A four-part name was supplied, but the provider does not expose the necessary interfaces to use a catalog and/or schema.
7313 | 16 | Invalid schema or catalog specified for provider '%ls'.
7314 | 16 | OLE DB provider '%ls' does not contain table '%ls'.
7315 | 16 | OLE DB provider '%ls' contains multiple tables that match the name '%ls'.
7316 | 16 | Could not use qualified table names (schema or catalog) with OLE DB provider '%ls' because it does not implement required functionality.
7317 | 16 | OLE DB provider '%ls' returned an invalid schema definition.
7318 | 16 | OLE DB provider '%ls' returned an invalid column definition.
7319 | 16 | OLE DB provider '%ls' returned a '%ls' index '%ls' with incorrect bookmark ordinal %d.
7320 | 16 | Could not execute query against OLE DB provider '%ls'. %ls
7321 | 16 | An error occurred while preparing a query for execution against OLE DB provider '%ls'. %ls
7322 | 16 | A failure occurred while giving parameter information to OLE DB provider '%ls'. %ls
7323 | 16 | An error occurred while submitting the query text to OLE DB provider '%ls'. %ls
7330 | 16 | Could not fetch a row from OLE DB provider '%ls'. %ls
7331 | 16 | Could not release a row from OLE DB provider '%ls'. %ls
7332 | 16 | Could not rescan the result set from OLE DB provider '%ls'. %ls
7333 | 16 | Could not fetch a row using a bookmark from OLE DB provider '%ls'. %ls
7340 | 16 | Could not create a column accessor for OLE DB provider '%ls'. %ls
7341 | 16 | Could not get the current row value of column '%ls.%ls' from the OLE DB provider '%ls'. %ls
7342 | 16 | Unexpected NULL value returned for column '%ls.%ls' from the OLE DB provider '%ls'. This column cannot be NULL.
7343 | 16 | OLE DB provider '%ls' could not %ls table '%ls'. %ls
7344 | 16 | OLE DB provider '%ls' could not %ls table '%ls' because of column '%ls'. %ls
7345 | 16 | OLE DB provider '%ls' could not delete from table '%ls'. %ls
7346 | 16 | Could not get the data of the row from the OLE DB provider '%ls'. %ls
7347 | 16 | OLE DB provider '%ls' returned an unexpected data length for the fixed-length column '%ls.%ls'. The expected data length is %ls, while the returned data length is %ls.
7348 | 16 | OLE DB provider '%ls' could not set range for table '%ls'.%ls
7349 | 16 | OLE DB provider '%ls' could not set range for table '%ls' because of column '%ls'.%ls
7350 | 16 | Could not get the column information from the OLE DB provider '%ls'.
7351 | 16 | OLE DB provider '%ls' could not map ordinals for one or more columns of object '%ls'.
7352 | 16 | OLE DB provider '%ls' supplied inconsistent metadata. The object '%ls' was missing expected column '%ls'.
7353 | 16 | OLE DB provider '%ls' supplied inconsistent metadata. An extra column was supplied during execution that was not found at compile time.
7354 | 16 | OLE DB provider '%ls' supplied invalid metadata for column '%ls'. %ls
7355 | 16 | OLE DB provider '%ls' supplied inconsistent metadata for a column. The name was changed at execution time.
7356 | 16 | OLE DB provider '%ls' supplied inconsistent metadata for a column. Metadata information was changed at execution time.
7357 | 16 | Could not process object '%ls'. The OLE DB provider '%ls' indicates that the object has no columns.
7358 | 16 | Could not execute query. The OLE DB provider '%ls' did not provide an appropriate interface to access the text, ntext, or image column '%ls.%ls'.
7360 | 16 | Could not get the length of a storage object from the OLE DB provider '%ls' for table '%ls', column '%ls'.
7361 | 16 | Could not read a storage object from the OLE DB provider '%ls', for table '%ls', column '%ls'.
7370 | 16 | One or more properties could not be set on the query for OLE DB provider '%ls'. %ls
7371 | 16 | One or more properties could not be set on the table for OLE DB provider '%ls'.
7373 | 16 | Could not set the initialization properties for the OLE DB provider '%ls'.
7375 | 16 | Could not open index '%ls' on table '%ls' from OLE DB provider '%ls'. %ls
7376 | 16 | Could not enforce the remote join hint for this query.
7390 | 16 | The requested operation could not be performed because the OLE DB provider '%ls' does not support the required transaction interface.
7391 | 16 | The operation could not be performed because the OLE DB provider '%ls' does not support distributed transactions.
7392 | 16 | Could not start a transaction for OLE DB provider '%ls'.
7393 | 16 | OLE DB provider '%ls' reported an error aborting the current transaction.
7394 | 16 | OLE DB provider '%ls' reported an error committing the current transaction.
7399 | 16 | OLE DB provider '%ls' reported an error. %ls
7401 | 16 | Cannot create OLE DB provider enumeration object installed with SQL Server. Verify installation.
7403 | 16 | Could not locate registry entry for OLE DB provider '%ls'.
7404 | 16 | The server could not load DCOM on startup (-O command-line used to force startup). Heterogeneous queries and remote RPC are disabled.
7405 | 16 | Heterogeneous queries require the ANSI_NULLS and ANSI_WARNINGS options to be set for the connection. This ensures consistent query semantics. Enable these options and then reissue your query.
7410 | 16 | Remote access not allowed for Windows NT user activated by SETUSER.
7411 | 16 | Server '%.*ls' is not configured for %ls.
7413 | 16 | Could not perform a Windows NT authenticated login because delegation is not available.
7414 | 16 | Invalid number of parameters. Rowset '%ls' expects %d parameter(s).
7415 | 16 | Ad hoc access to OLE DB provider '%ls' has been denied. You must access this provider through a linked server.
7416 | 16 | Access to the remote server is denied because no login-mapping exists.
7417 | 16 | Remote tables are not allowed in GROUP BY ALL operations.
7601 | 16 | Cannot use a CONTAINS or FREETEXT predicate on %S_MSG '%.*ls' because it is not full-text indexed.
7602 | 16 | The Full-Text Service (Microsoft Search) is not available. The system administrator must start this service.
7603 | 15 | Syntax error in search condition '%ls'.
7604 | 17 | Full-text operation failed due to a time out.
7605 | 17 | Full-text catalog '%ls' has been lost. Use sp_fulltext_catalog to rebuild and to repopulate this full-text catalog.
7606 | 17 | Could not find full-text index for database ID %d, table ID %d. Use sp_fulltext_table to deactivate then activate this index.
7607 | 17 | Search on full-text catalog '%ls' for database ID %d, table ID %d with search condition '%ls' failed with unknown result (%x).
7608 | 17 | An unknown full-text failure (%x) occurred in function %hs on full-text catalog '%ls'.
7609 | 17 | Could not load the Full-Text Search component (SQLFTQRY.DLL).
7610 | 16 | Could not create full-text catalog because '%ls' is an invalid file path.
7611 | 10 | Warning: Request to start a population in full-text catalog '%ls' ignored because a crawl is currently active for this full-text catalog.
7612 | 16 | %d is not a valid value for full-text system resource usage.
7613 | 16 | Cannot drop index '%.*ls' because it enforces the full-text key for table '%.*ls'.
7614 | 16 | Cannot alter or drop column '%.*ls' because it is enabled for Full-Text Search.
7615 | 16 | A CONTAINS or FREETEXT predicate can only operate on one table. Qualify the use of * with a table name.
7616 | 16 | Full-Text Search is not enabled for the current database. Use sp_fulltext_database to enable full-text search for the database.
7617 | 16 | Query does not reference the fulltext indexed table.
7618 | 16 | %d is not a valid value for a full-text connection time out.
7619 | 16 | The requested catalog is disabled on the Search server.
7620 | 16 | Conversion to data type %ls failed for full-text search key value 0x%ls.
7621 | 16 | Invalid use of full-text predicate in the HAVING clause.
7622 | 17 | Full-text catalog '%ls' lacks sufficient disk space to complete this operation.
7623 | 17 | Full-text query failed because full-text catalog '%ls' is not yet ready for queries.
7624 | 17 | Full-text catalog '%ls' is in a unusable state. Drop and re-create this full-text catalog.
7908 | 10 | The table '%.*ls' was created with the NO_LOG option.
7909 | 10 | A transaction involving the NO_LOG table '%.*ls' was undone. This may have left the table in an inconsistent state. Rebuild the table.
7910 | 10 | Repair: Page %S_PGID has been allocated to object ID %d, index ID %d.
7911 | 10 | Repair: Page %S_PGID has been deallocated from object ID %d, index ID %d.
7912 | 10 | Repair: Extent %S_PGID has been allocated to object ID %d, index ID %d.
7913 | 10 | Repair: Extent %S_PGID has been deallocated from object ID %d, index ID %d.
7914 | 10 | Repair: %ls page at %S_PGID has been rebuilt.
7915 | 10 | Repair: IAM chain for object ID %d, index ID %d, has been truncated before page %S_PGID and will be rebuilt.
7916 | 10 | Repair: Deleted record for object ID %d, index ID %d, on page %S_PGID, slot %d. Indexes will be rebuilt.
7917 | 10 | Repair: Converted forwarded record for object ID %d, index ID %d, at page %S_PGID, slot %d to a data row.
7918 | 10 | Repair: Page %S_PGID next and %S_PGID previous pointers have been set to match each other in object ID %d, index ID %d.
7919 | 16 | Repair statement not processed. Database needs to be in single user mode.
7920 | 10 | Processed %ld entries in sysindexes for database ID %d.
7922 | 16 | ***************************************************************
7923 | 10 | Table %.*ls Object ID %ld.
7924 | 10 | Index ID %ld FirstIAM %S_PGID Root %S_PGID Dpages %ld Sort %d.
7925 | 16 | Index ID %d. %ld index pages in %ld extents.
7926 | 16 | Data level %d. %ld data pages in %ld extents.
7927 | 16 | Total number of extents is %ld.
7932 | 16 | The indexes for '%.*ls' are already correct. They will not be rebuilt.
7933 | 16 | One or more indexes are corrupt. They will be rebuilt.
7934 | 16 | The table '%.*ls' has no indexes.
7935 | 16 | REINDEX received an exception. Statement terminated.
7937 | 16 | The data in table '%.*ls' is possibly corrupt. REINDEX terminated. Run DBCC CHECKTABLE and report errors to your system administrator.
7939 | 16 | Cannot detach database '%.*ls' because it does not exist.
7940 | 16 | System databases master, model, and tempdb cannot be detached.
7941 | 10 | Trace option(s) not enabled for this connection. Use 'DBCC TRACEON()'.
7942 | 10 | DBCC %ls scanning '%.*ls' table...
7943 | 10 | Table: '%.*ls' (%d); index ID: %d, database ID: %d
7944 | 10 | %ls level scan performed.
7945 | 10 | - Pages Scanned................................: %lu
7946 | 10 | - Extents Scanned..............................: %lu
7947 | 10 | - Extent Switches..............................: %lu
7948 | 10 | - Avg. Pages per Extent........................: %3.1f
7949 | 10 | - Scan Density [Best Count:Actual Count].......: %4.2f%ls [%lu:%lu]
7950 | 10 | - Logical Scan Fragmentation ..................: %4.2f%ls
7951 | 10 | - Physical Scan Fragmentation .................: %4.2f%ls
7952 | 10 | - Extent Scan Fragmentation ...................: %4.2f%ls
7953 | 10 | - Avg. Bytes Free per Page.....................: %3.1f
7954 | 10 | - Avg. Page Density (full).....................: %4.2f%ls
7955 | 10 | Invalid SPID %d specified.
7956 | 10 | Permission to execute DBCC %ls denied.
7957 | 10 | Cannot display the specified SPID's buffer; in transition.
7958 | 10 | The specified SPID does not process input/output data streams.
7959 | 10 | The DBCC statement is not supported in this release.
7962 | 16 | Upgrade requires SQL Server to be started in single user mode. Restart SQL Server with the -m flag.
7963 | 16 | Upgrade encountered a fatal error. See the SQL Server errorlog for more information.
7965 | 16 | Table corrupt: Could not check object ID %d, index ID %d due to invalid allocation (IAM) page(s).
7966 | 10 | Warning: NO_INDEX option of %ls being used. Checks on non-system indexes will be skipped.
7968 | 10 | Transaction information for database '%.*ls'.
7969 | 10 | No active open transactions.
7970 | 10 | %hsOldest active transaction:
7971 | 10 | SPID (server process ID) : %d
7972 | 10 | UID (user ID) : %d
7974 | 10 | Name : %.*ls
7975 | 10 | LSN : (%d:%d:%d)
7977 | 10 | Start time : %.*ls
7979 | 10 | %hsReplicated Transaction Information:
7980 | 10 | Oldest distributed LSN : (%d:%d:%d)
7982 | 10 | Oldest non-distributed LSN : (%d:%d:%d)
7983 | 14 | Only the owner of database '%.*ls' can run the DBCC %ls statement.
7984 | 16 | Invalid object name '%.*ls'.
7985 | 16 | The object name '%.*ls' contains more than the maximum number of prefixes. The maximum is %d.
7986 | 16 | Warning: Pinning tables should be carefully considered. If a pinned table is larger, or grows larger, than the available data cache, the server may need to be restarted and the table unpinned.
7991 | 16 | System table mismatch: Table '%.*ls', object ID %d has index ID 1 in sysindexes but the status in sysobjects does not have the clustered bit set. The table will be checked as a heap.
7992 | 16 | Cannot shrink 'read only' database '%.*ls'
7993 | 10 | Cannot shrink file '%d' in database '%.*ls' to %d pages as it only contains %d pages.
7994 | 16 | Object ID %d, index ID %d: FirstIAM field in sysindexes is %S_PGID. FirstIAM for statistics only and dummy index entries should be (0:0).
7995 | 16 | Database '%ls' consistency errors in sysobjects, sysindexes, syscolumns, or systypes prevent further %ls processing.
7996 | 16 | Extended stored procedures can only be created in the master database.
7997 | 16 | '%.*ls' does not contain an identity column.
7998 | 16 | Checking identity information: current identity value '%.*hs', current column value '%.*hs'.
7999 | 16 | Could not find any index named '%.*ls' for table '%.*ls'.


Errors 8000 - 8999

Error | Severity | Description
8101 | 16 | An explicit value for the identity column in table '%.*ls' can only be specified when a column list is used and IDENTITY_INSERT is ON.
8102 | 16 | Cannot update identity column '%.*ls'.
8103 | 16 | Table '%.*ls' does not exist or cannot be opened for SET operation.
8104 | 16 | The current user is not the database or object owner of table '%.*ls'. Cannot perform SET operation.
8105 | 16 | '%.*ls' is not a user table. Cannot perform SET operation.
8106 | 16 | Table '%.*ls' does not have the identity property. Cannot perform SET operation.
8107 | 16 | IDENTITY_INSERT is already ON for table '%.*ls.%.*ls.%.*ls'. Cannot perform SET operation for table '%.*ls'.
8108 | 16 | Cannot add identity column, using the SELECT INTO statement, to table '%.*ls', which already has column '%.*ls' that inherits the identity property.
8109 | 16 | Attempting to add multiple identity columns to table '%.*ls' using the SELECT INTO statement.
8110 | 16 | Cannot add multiple PRIMARY KEY constraints to table '%.*ls'.
8111 | 16 | Cannot define PRIMARY KEY constraint on nullable column in table '%.*ls'.
8112 | 16 | Cannot add more than one clustered index for constraints on table '%.*ls'.
8114 | 16 | Error converting data type %ls to %ls.
8115 | 16 | Arithmetic overflow error converting %ls to data type %ls.
8116 | 16 | Argument data type %ls is invalid for argument %d of %ls function.
8117 | 16 | Operand data type %ls is invalid for %ls operator.
8118 | 16 | Column '%.*ls.%.*ls' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
8119 | 16 | Column '%.*ls.%.*ls' is invalid in the HAVING clause because it is not contained in an aggregate function and there is no GROUP BY clause.
8120 | 16 | Column '%.*ls.%.*ls' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
8121 | 16 | Column '%.*ls.%.*ls' is invalid in the HAVING clause because it is not contained in either an aggregate function or the GROUP BY clause.
8122 | 16 | Only the first query in a UNION statement can have a SELECT with an assignment.
8123 | 16 | A correlated expression is invalid because it is not in a GROUP BY clause.
8124 | 16 | Multiple columns are specified in an aggregated expression containing an outer reference. If an expression being aggregated contains an outer reference, then that outer reference must be the only column referenced in the expression.
8125 | 16 | An aggregated expression containing an outer reference must be contained in either the select list, or a HAVING clause subquery in the query whose FROM clause contains the table with the column being aggregated.
8126 | 16 | Column name '%.*ls.%.*ls' is invalid in the ORDER BY clause because it is not contained in an aggregate function and there is no GROUP BY clause.
8127 | 16 | Column name '%.*ls.%.*ls' is invalid in the ORDER BY clause because it is not contained in either an aggregate function or the GROUP BY clause.
8128 | 10 | Using '%s' version '%s' to execute extended stored procedure '%s'.
8129 | 16 | The new disk size must be greater than %d. Consider using DBCC SHRINKDB.
8130 | 16 | The device is not a database device. Only database devices can be expanded.
8131 | 10 | Extended stored procedure DLL '%s' does not export __GetXpVersion(). Refer to the topic "Backward Compatibility Details (Level 1) - Open Data Services" in the documentation for more information.
8132 | 10 | Extended stored procedure DLL '%s' reports its version is %d.%d. Server expects version %d.%d.
8133 | 16 | None of the result expressions in a CASE specification can be NULL.
8134 | 16 | Divide by zero error encountered.
8135 | 16 | Table level constraint does not specify column list, table '%.*ls'.
8136 | 16 | Duplicate columns specified in %ls constraint key list, table '%.*ls'.
8138 | 16 | More than 16 columns specified in foreign key column list, table '%.*ls'.
8139 | 16 | Number of referencing columns in foreign key differs from number of referenced columns, table '%.*ls'.
8140 | 16 | More than one key specified in column level %ls constraint, table '%.*ls'.
8141 | 16 | Column %ls constraint for column '%.*ls' references another column, table '%.*ls'.
8142 | 16 | Subqueries are not supported in %ls constraints, table '%.*ls'.
8143 | 16 | Parameter '%.*ls' was supplied multiple times.
8144 | 16 | Too many arguments were supplied for procedure %.*ls.
8145 | 16 | %.*ls is not a parameter for procedure %.*ls.
8146 | 16 | Procedure %.*ls has no parameters and arguments were supplied.
8147 | 16 | Could not create IDENTITY attribute on nullable column '%.*ls', table '%.*ls'.
8148 | 16 | More than one column %ls constraint specified for column '%.*ls', table '%.*ls'.
8150 | 16 | Multiple NULL constraints were specified for column '%.*ls', table '%.*ls'.
8151 | 16 | Both a PRIMARY KEY and UNIQUE constraint have been defined for column '%.*ls', table '%.*ls'. Only one is allowed.
8152 | 16 | String or binary data would be truncated.
8153 | 0 | Warning: Null value eliminated from aggregate.
8154 | 15 | The table '%.*ls' is ambiguous.
8155 | 15 | No column was specified for column %d of '%.*ls'.
8156 | 15 | The column '%.*ls' was specified multiple times for '%.*ls'.
8157 | 15 | All the queries in a query expression containing a UNION operator must have the same number of expressions in their select lists.
8158 | 15 | '%.*ls' has more columns than were specified in the column list.
8159 | 15 | '%.*ls' has fewer columns than were specified in the column list.
8160 | 15 | A grouping function can only be specified when either CUBE or ROLLUP is specified in the GROUP BY clause.
8161 | 15 | A grouping function argument does not match any of the expressions in the GROUP BY clause.
8162 | 16 | Formal parameter '%.*ls' was defined as OUTPUT but the actual parameter not declared OUTPUT.
8163 | 16 | The text, ntext, or image data type cannot be selected as DISTINCT.
8164 | 16 | An INSERT EXEC statement cannot be nested.
8166 | 16 | Constraint name '%.*ls' not permitted. Constraint names cannot begin with a number sign (#).
8168 | 16 | Cannot create two constraints named '%.*ls'. Duplicate constraint names are not allowed.
8169 | 16 | Syntax error converting from a character string to uniqueidentifier.
8170 | 16 | Insufficient result space to convert uniqueidentifier value to char.
8175 | 10 | Could not find table %.*ls. Will try to resolve this table name later.
8177 | 16 | Cannot use a column in the %hs clause unless it is contained in either an aggregate function or the GROUP BY clause.
8178 | 16 | Prepared statement '%.*ls' expects parameter %.*ls, which was not supplied.
8179 | 16 | Could not find prepared statement with handle %d.
8180 | 16 | Statement(s) could not be prepared.
8181 | 16 | Text for '%.*ls' is missing from syscomments. The object must be dropped and re-created before it can be used.
8190 | 16 | Cannot compile replication filter procedure without defining table being filtered.
8191 | 16 | Replication filter procedures can only contain SELECT, GOTO, IF, WHILE, RETURN, and DECLARE statements.
8192 | 16 | Replication filter procedures cannot have parameters.
8193 | 16 | Cannot execute a procedure marked FOR REPLICATION.
8194 | 16 | Cannot execute a USE statement while an application role is active.
8196 | 16 | Duplicate column specified as ROWGUIDCOL.
8197 | 16 | Windows NT user '%.*ls' does not have server access.
8198 | 16 | Could not obtain information about Windows NT group/user '%ls'.
8199 | 16 | In EXECUTE <procname>, procname can only be a literal or variable of type char, varchar, nchar, or nvarchar.
8501 | 16 | MSDTC on server '%.*ls' is unavailable.
8502 | 20 | Unknown MSDTC token '0x%x' received.
8504 | 20 | Invalid transaction import buffer.
8506 | 20 | Invalid transaction state change requested from %hs to %hs.
8508 | 20 | QueryInterface failed for '%hs': %hs.
8509 | 20 | Import of MSDTC transaction failed: %hs.
8510 | 20 | Enlist of MSDTC transaction failed: %hs.
8511 | 20 | Unknown isolation level %d requested from MSDTC.
8512 | 20 | MSDTC Commit acknowledgement failed: %hs.
8513 | 20 | MSDTC Abort acknowledgement failed: %hs.
8514 | 20 | MSDTC PREPARE acknowledgement failed: %hs.
8515 | 20 | MSDTC Global state is invalid.
8517 | 20 | Failed to get MSDTC PREPARE information: %hs.
8518 | 20 | MSDTC BEGIN TRANSACTION failed: %hs.
8519 | 16 | Current MSDTC transaction must be committed by remote client.
8520 | 20 | Commit of internal MSDTC transaction failed: %hs.
8521 | 20 | Invalid awakening state. Slept in %hs; awoke in %hs.
8522 | 20 | Distributed transaction aborted by MSDTC.
8523 | 15 | PREPARE TRAN statement not allowed on MSDTC transaction.
8524 | 16 | The current transaction could not be exported to the remote provider. It has been rolled back.
8601 | 17 | Internal Query Processor Error: The query processor could not obtain access to a required interface.
8602 | 16 | The Index Tuning Wizard cannot process queries which contain index hints. Remove the index hints which reference table '%.*ls'.
8616 | 10 | The index hints for table '%.*ls' were ignored because the table was considered a fact table in the star join.
8617 | 17 | Invalid Query: CUBE and ROLLUP cannot compute distinct aggregates.
8618 | 17 | Warning: The query processor could not produce a query plan from the optimizer because the total length of all the columns in the GROUP BY clause exceeds 8000 bytes.
8619 | 17 | Warning: The query processor could not produce a query plan from the optimizer because the maximum row size of an intermediate result was too large to fit into a work table. Resubmit your query without the ROBUST PLAN hint.
8620 | 17 | Internal Query Processor Error: The query processor encountered an internal limit overflow.
8621 | 16 | Internal Query Processor Error: The query processor ran out of stack space during query optimization.
8622 | 16 | Query processor could not produce a query plan because of the hints defined in this query. Resubmit the query without specifying any hints and without using SET FORCEPLAN.
8623 | 16 | Internal Query Processor Error: The query processor could not produce a query plan.
8624 | 16 | Internal SQL Server error.
8625 | 16 | Warning: The join order has been enforced because a local join hint is used.
8626 | 16 | Only text pointers are allowed in work tables, never text, ntext, or image columns. The query processor produced a query plan that required a text, ntext, or image column in a work table.
8627 | 16 | The query processor could not produce a query plan because of the combination of hints and text, ntext, or image data passing through operators using work tables.
8628 | 17 | A time out occurred while waiting to optimize the query. Rerun the query.
8629 | 16 | The query processor could not produce a query plan from the optimizer because a query cannot update a text, ntext, or image column and a clustering key at the same time.
8630 | 17 | Internal Query Processor Error: The query processor encountered an unexpected error during execution.
8640 | 17 | Internal Query Processor Error: The query processor encountered an unexpected work table error during execution.
8642 | 17 | The query processor could not start the necessary thread resources for parallel query execution.
8644 | 16 | Internal Query Processor Error: The plan selected for execution does not support the invoked given execution routine.
8645 | 17 | A time out occurred while waiting for memory resources to execute the query. Rerun the query.
8646 | 21 | The index entry for row ID %.*hs was not found in index ID %d, of table %d, in database '%.*ls'.
8647 | 20 | Scan on sysindexes for database ID %d, object ID %ld, returned a duplicate index ID %d. Run DBCC CHECKTABLE on sysindexes.
8648 | 20 | Could not insert a row larger than the page size into a hash table. Resubmit the query with the ROBUSTPLAN hint.
8649 | 17 | The query has been canceled because the estimated cost of this query (%d) exceeds the configured threshold of %d. Contact the system administrator.
8650 | 13 | Intra-query parallelism caused your server command (process ID #%d) to deadlock. Rerun the query without intra-query parallelism by using the query hint option (maxdop 1).
8651 | 17 | Could not perform the requested operation because the minimum query memory is not available. Decrease the configured value for the 'min memory per query' server configuration option.
8680 | 17 | Internal Query Processor Error: The query processor encountered an unexpected error during the processing of a remote query phase.
8901 | 13 | Deadlock detected during DBCC. Complete the transaction in progress and retry this statement.
8902 | 17 | Memory allocation error during DBCC processing.
8903 | 16 | Extent %S_PGID in database ID %d is allocated in both GAM %S_PGID and SGAM %S_PGID.
8904 | 16 | Extent %S_PGID in database ID %d is allocated by more than one allocation object.
8905 | 16 | Extent %S_PGID in database ID %d is marked allocated in the GAM, but no SGAM or IAM has allocated it.
8906 | 16 | Page %S_PGID in database ID %d is allocated in the SGAM %S_PGID and PFS %S_PGID, but was not allocated in any IAM. PFS flags '%hs'.
8907 | 16 | Mixed extent %S_PGID in database ID %d has %d free pages. It should be included in the SGAM %S_PGID.
8908 | 16 | Table Corrupt: Database ID %d, object ID %d, index ID %d. Chain linkage mismatch. %S_PGID->next = %S_PGID, but %S_PGID->prev = %S_PGID.
8909 | 16 | Table Corrupt: Object ID %d, index ID %d, page ID %S_PGID. The PageId in the page header = %S_PGID.
8910 | 16 | Page %S_PGID in database ID %d is allocated to both object ID %d, index ID %d, and object ID %d, index ID %d.
8911 | 10 | The error has been repaired.
8912 | 10 | %.*ls fixed %d allocation errors and %d consistency errors in database '%ls'.
8913 | 16 | Extent %S_PGID is allocated to '%ls' and at least one other object.
8914 | 10 | Incorrect PFS free space information for page %S_PGID, object ID %d, index ID %d, in database ID %d. Expected value %hs, actual value %hs.
8915 | 10 | %S_PGID (number of mixed extents = %ld, mixed pages = %ld).
8916 | 10 | Object ID %ld, Index ID %ld, data extents %ld, pages %ld, mixed extent pages %ld.
8917 | 10 | Object ID %ld, Index ID %ld, index extents %ld, pages %ld, mixed extent pages %ld.
8918 | 10 | (number of mixed extents = %ld, mixed pages = %ld) in this database.
8919 | 16 | Single page allocation %S_PGID in table %ls, object ID %d, index ID %d is not allocated in PFS page ID %S_PGID.
8920 | 16 | Cannot perform a %ls operation inside a user transaction. Terminate the transaction and reissue the statement.
8921 | 16 | CHECKTABLE terminated. A failure was detected while collecting facts. Possibly tempdb out of space or a system table is corrupt. Check previous errors.
8922 | 10 | Could not repair this error.
8923 | 10 | The repair level on the DBCC statement caused this repair to be bypassed.
8924 | 10 | Repairing this error requires other errors to be corrected first.
8925 | 16 | Table Corrupt: Cross object linkage: Page %S_PGID, slot %d, in object ID %d, index ID %d, refers to page %S_PGID, slot %d, in object ID %d, index ID %d.
8926 | 16 | Table Corrupt: Cross object linkage: Parent page %S_PGID, slot %d, in object ID %d, index ID %d, and page %S_PGID, slot %d, in object ID %d, index ID %d, next refer to page %S_PGID but are not in the same object.
8927 | 16 | Object ID %d, index ID %d: The ghosted record count (%d) in the header does not match the number of ghosted records (%d) found on page %S_PGID.
8928 | 16 | Object ID %d, index ID %d: Page %S_PGID could not be processed. See other errors for details.
8929 | 16 | Object ID %d: Errors found in text ID %I64d owned by data record identified by %.*ls.
8930 | 16 | Table Corrupt: Object ID %d, index ID %d cross-object chain linkage. Page %S_PGID points to %S_PGID in object ID %d, index ID %d.
8931 | 16 | Table Corrupt: Object ID %d, index ID %d B-tree level mismatch, page %S_PGID. Level %d does not match level %d from parent %S_PGID or previous %S_PGID.
8932 | 16 | Table Corrupt: Object ID %d, index ID %d, column '%.*ls'. The column ID %d is not valid for this table. The valid range is from 1 to %d. System table corruption.
8933 | 16 | Table Corrupt: Object ID %d, index ID %d. The low key value on page %S_PGID (level %d) is not %ls the key value in the parent %S_PGID slot %d.
8934 | 16 | Table Corrupt: Object ID %d, index ID %d. The high key value on page %S_PGID (level %d) is not less than the low key value in the parent %S_PGID, slot %d of the next page %S_PGID.
8935 | 16 | Table Corrupt: Object ID %d, index ID %d. The previous link %S_PGID on page %S_PGID does not match the previous page %S_PGID that the parent %S_PGID, slot %d expects for this page.
8936 | 16 | Table Corrupt: Object ID %d, index ID %d. B-tree chain linkage mismatch. %S_PGID->next = %S_PGID, but %S_PGID->Prev = %S_PGID.
8937 | 16 | Table Corrupt: Object ID %d, index ID %d. B-tree page %S_PGID has two parent nodes %S_PGID, slot %d and %S_PGID, slot %d.
8938 | 16 | Table Corrupt: Page %S_PGID corrupt. Object ID %d, index ID %d. Unexpected page type %d.
8939 | 16 | Table Corrupt: Object ID %d, index ID %d, page %S_PGID. Test (%hs) failed. Values are %ld and %ld.
8940 | 16 | Table Corrupt: Object ID %d, index ID %d, page %S_PGID. Test (%hs) failed. Address 0x%x is not aligned.
8941 | 16 | Table Corrupt: Object ID %d, index ID %d, page %S_PGID. Test (%hs) failed. Slot %d, offset 0x%x is invalid.
8942 | 16 | Table Corrupt: Object ID %d, index ID %d, page %S_PGID. Test (%hs) failed. Slot %d, offset 0x%x overlaps with the prior row.
8943 | 16 | Table Corrupt: Object ID %d, index ID %d, page %S_PGID. Test (%hs) failed. Slot %d, row extends into freespace at 0x%x.
8944 | 16 | Table Corrupt: Object ID %d, index ID %d, page %S_PGID, row %d. Test (%hs) failed. Values are %ld and %ld.
8945 | 16 | Table Corrupt: Object ID %d, index ID %d will be rebuilt.
8946 | 16 | Table Corrupt: Allocation page %S_PGID has invalid %ls page header values. Type is %d. Check type, object ID and page ID on the page.
8947 | 16 | Table Corrupt: Multiple IAM pages for object ID %d, index ID %d contain allocations for the same interval. IAM pages %S_PGID and %S_PGID.
8948 | 16 | Database Corrupt: Page %S_PGID is marked with the wrong type in PFS page %S_PGID. PFS status 0x%x expected 0x%x.
8949 | 10 | %.*ls fixed %d allocation errors and %d consistency errors in table '%ls' (object ID %d).
8950 | 16 | %.*ls fixed %d allocation errors and %d consistency errors not associated with any single object.
8951 | 16 | Table Corrupt: Table '%ls' (ID %d). Missing or invalid key in index '%ls' (ID %d) for the row:
8952 | 16 | Table Corrupt: Database '%ls', index '%ls.%ls' (ID %d) (index ID %d). Extra or invalid key for the keys:
8953 | 10 | Repair: Deleted text column, text ID %I64d, for object ID %d on page %S_PGID, slot %d.
8954 | 10 | %.*ls found %d allocation errors and %d consistency errors not associated with any single object.
8955 | 16 | Data row (%d:%d:%d) identified by (%ls) has index values (%ls).
8956 | 16 | Index row (%d:%d:%d) with values (%ls) points to the data row identified by (%ls).
8957 | 10 | DBCC %ls (%ls%ls%ls) executed by %ls found %d errors and repaired %d errors.
8958 | 10 | %ls is the minimum repair level for the errors found by DBCC %ls (%ls %ls).
8959 | 16 | Table Corrupt: IAM page %S_PGID for object ID %d, index ID %d is linked in the IAM chain for object ID %d, index ID %d by page %S_PGID.
8960 | 23 | Table Corrupt: Page %S_PGID, slot %d, column %d is not a valid complex column.
8961 | 23 | Table Corrupt: Object ID %d. The text, ntext, or image node at page %S_PGID, slot %d, text ID %I64d does not match its reference from page %S_PGID, slot %d.
8962 | 23 | Table Corrupt: The text, ntext, or image node at page %S_PGID, slot %d, text ID %I64d has incorrect node type %d.
8963 | 23 | Table Corrupt: The text, ntext, or image node at page %S_PGID, slot %d, text ID %I64d has type %d. It cannot be placed on a page of type %d.
8964 | 23 | Table Corrupt: Object ID %d. The text, ntext, or image node at page %S_PGID, slot %d, text ID %I64d is not referenced.
8965 | 23 | Table Corrupt: Object ID %d. The text, ntext, or image node at page %S_PGID, slot %d, text ID %I64d is referenced by page %S_PGID, slot %d, but was not seen in the scan.
8966 | 22 | Could not read and latch page %S_PGID with latch type %ls. %ls failed.
8967 | 16 | Table Corrupt: Invalid value detected in %ls for Object ID %d, index ID %d. Row skipped.
8968 | 16 | Table Corrupt: %ls page %S_PGID (object ID %d, index ID %d) is out of the range of this database.
8969 | 16 | Table Corrupt: IAM chain linkage error: Object ID %d, index ID %d. The next page for IAM page %S_PGID is %S_PGID, but the previous link for page %S_PGID is %S_PGID.
8970 | 16 | Row corrupt: Object ID %d, index ID %d, page ID %S_PGID, row ID %d. Column '%.*ls' was created NOT NULL, but is NULL in the row.
8971 | 16 | Forwarded row mismatch: Object ID %d, page %S_PGID, slot %d points to forwarded row page %S_PGID, slot %d; the forwarded row points back to page %S_PGID, slot %d.
8972 | 16 | Forwarded row referenced by more than one row. Object ID %d, page %d, slot %d incorrectly points to forwarded row page %S_PGID, slot %d; the forwarded row correctly refers back to page %S_PGID, slot %d.
8973 | 16 | CHECKTABLE processing of object ID %d, index ID %d encountered page %S_PGID, slot %d twice. Possible internal error or allocation fault.
8974 | 16 | Text node referenced by more than one node. Object ID %d, text, ntext, or image node page %S_PGID, slot %d, text ID %I64d is pointed to by page %S_PGID, slot %d and by page %S_PGID, slot %d.
8975 | 16 | Page referenced by more than one page: Object ID %d, index ID %d. Page %S_PGID->next is an unmatched linkage to page %S_PGID. %S_PGID->next matches the previous linkage of the page.
8976 | 16 | Table Corrupt: Object ID %d, index ID %d. Page %S_PGID not allocated or corrupt. Parent %S_PGID and previous %S_PGID refer to it.
8977 | 16 | Table Corrupt: Object ID %d, index ID %d. Parent node for page %S_PGID was not encountered.
8978 | 16 | Table Corrupt: Object ID %d, index ID %d. Page %S_PGID is missing a reference from previous page %S_PGID. Possible chain linkage problem.
8979 | 16 | Table Corrupt: Object ID %d, index ID %d. Page %S_PGID is missing references from parent (unknown) and previous (page %S_PGID) nodes. Possible bad root entry in sysindexes.
8980 | 16 | Table Corrupt: Object ID %d, index ID %d. Index node page %S_PGID, slot %d refers to child page %S_PGID and previous child %S_PGID, but they were not encountered.
8981 | 16 | Table Corrupt: Object ID %d, index ID %d. The next pointer of %S_PGID refers to page %S_PGID. Neither %S_PGID nor its parent were encountered. Possible bad chain linkage.
8982 | 16 | Table Corrupt: Cross object linkage. Page %S_PGID->next in object ID %d, index ID %d refers to page %S_PGID in object ID %d, index ID %d but is not in the same index.
8983 | 10 | Allocation page %S_PGID. Extents %d, used pages %d, referenced pages %d, mixed extents %d, mixed pages %d.
8984 | 10 | Object ID %d, index ID %d. Allocations for %S_PGID. IAM %S_PGID, extents %d, used pages %d, mixed pages %d.
8985 | 16 | Could not locate file '%.*ls' in sysfiles.
8986 | 16 | Too many errors found (%d) for object ID %d. To see all error messages rerun the statement using "WITH ALL_ERRORMSGS".
8987 | 16 | No help available for DBCC statement '%.*ls'.
8988 | 10 | The schema for database '%ls' is changing. May find spurious allocation problems due to schema changes in progress.
8989 | 10 | %.*ls found %d allocation errors and %d consistency errors in database '%ls'.
8990 | 10 | %.*ls found %d allocation errors and %d consistency errors in table '%ls' (object ID %d).
8991 | 16 | 0x%.8x + 0x%.8x bytes is not a valid address range.
8992 | 16 | Database ID %d, object '%ls' (ID %d). Loop in data chain detected at %S_PGID.
8993 | 16 | Object ID %d, forwarding row page %S_PGID, slot %d points to page %S_PGID, slot %d. Did not encounter forwarded row. Possible allocation error.
8994 | 16 | Object ID %d, forwarded row page %S_PGID, slot %d should be pointed to by forwarding row page %S_PGID, slot %d. Did not encounter forwarding row. Possible allocation error.
8995 | 16 | System table '%.*ls' (object ID %d, index ID %d) is in filegroup %d. All system tables must be in filegroup %d.
8996 | 16 | IAM page %S_PGID for object ID %d, index ID %d controls pages in filegroup %d, that should be in filegroup %d.
8997 | 16 | Single page allocation %S_PGID for object ID %d, index ID %d is in filegroup %d; it should be in filegroup %d.
8998 | 16 | Page corruptions on the GAM, SGAM, or PFS pages do not allow CHECKALLOC to verify database ID %d pages from %S_PGID to %S_PGID. See other errors for cause.
8999 | 10 | Database tempdb allocation errors prevent further %ls processing.


Errors 9000 - 9999

Error | Severity | Description
9001 | 10 | The log for database '%.*ls' is not available.
9002 | 19 | The log file for database '%.*ls' is full. Back up the transaction log for the database to free up some log space.
9003 | 20 | The LSN %S_LSN passed to log scan in database '%.*ls' is invalid.
9004 | 21 | The log for database '%.*ls' is corrupt.


Errors 10000 - 10999

Error | Severity | Description
10000 | 16 | Unknown provider error.
10001 | 16 | The provider reported an unexpected catastrophic failure.
10002 | 16 | The provider did not implement the functionality.
10003 | 16 | The provider ran out of memory.
10004 | 16 | One or more arguments were reported invalid by the provider.
10005 | 16 | The provider did not support an interface.
10006 | 16 | The provider indicated an invalid pointer was used.
10007 | 16 | The provider indicated an invalid handle was used.
10008 (DB-Library) | 16 | The provider terminated the operation.
10009 | 16 | The provider did not give any information about the error.
10010 | 16 | The data necessary to complete this operation was not yet available to the provider.
10021 | 16 | Execution terminated by the provider because a resource limit was reached.
10022 | 16 | The provider called a method from IRowsetNotify in the consumer, and the method has not yet returned.
10023 | 16 | The provider does not support the necessary method.
10024 (DB-Library) | 16 | The provider indicates that the user did not have the permission to perform the operation.
10031 | 16 | An error occurred because one or more properties could not be set.
10032 | 16 | Cannot return multiple result sets (not supported by the provider).
10033 | 16 | The specified index does not exist or the provider does not support an index scan on this data source.
10034 | 16 | The specified table does not exist.
10035 | 16 | No value was given for one or more of the required parameters.
10041 | 16 | Could not set any property values.
10042 | 16 | Cannot set any properties while there is an open rowset.
10051 | 16 | An error occurred while setting the data.
10052 | 16 | The insertion was canceled by the provider during notification.
10053 (DB-Library) | 16 | Could not convert the data value due to reasons other than sign mismatch or overflow.
10054 (DB-Library) | 16 | The data value for one or more columns overflowed the type used by the provider.
10055 | 16 | The data violated the integrity constraints for one or more columns.
10056 | 16 | The number of rows that have pending changes has exceeded the limit specified by the DBPROP_MAXPENDINGROWS property.
10057 | 16 | Cannot create the row. Would exceed the total number of active rows supported by the rowset.
10058 | 16 | The consumer cannot insert a new row before releasing previously-retrieved row handles.
10061 | 16 | An error occurred while setting data for one or more columns.
10062 | 16 | The change was canceled by the provider during notification.
10063 | 16 | Could not convert the data value due to reasons other than sign mismatch or overflow.
10064 | 16 | The data value for one or more columns overflowed the type used by the provider.
10065 | 16 | The data violated the integrity constraints for one or more columns.
10066 | 16 | The number of rows that have pending changes has exceeded the limit specified by the DBPROP_MAXPENDINGROWS property.
10067 | 16 | The rowset was using optimistic concurrency and the value of a column has been changed after the containing row was last fetched or resynchronized.
10068 | 16 | The consumer could not delete the row. A deletion is pending or has already been transmitted to the data source.
10069 | 16 | The consumer could not delete the row. The insertion has been transmitted to the data source.
10075 | 16 | An error occurred while deleting the row.
10081 | 16 | The rowset uses integrated indexes and there is no current index.
10085 | 16 | RestartPosition on the table was canceled during notification.
10086 | 16 | The table was built over a live data stream and the position cannot be restarted.
10087 | 16 | The provider did not release some of the existing rows.
10088 | 16 | The order of the columns was not specified in the object that created the rowset. The provider had to reexecute the command to reposition the next fetch position to its initial position, and the order of the columns changed.


Errors 11000 - 11999

Error | Severity | Description
11000 | 16 | Unknown status code for this column.
11001 | 16 | Non-NULL value successfully returned.
11002 | 16 | Deferred accessor validation occurred. Invalid binding for this column.
11003 | 16 | Could not convert the data value due to reasons other than sign mismatch or overflow.
11004 | 16 | Successfully returned a NULL value.
11005 | 16 | Successfully returned a truncated value.
11006 | 16 | Could not convert the data type because of a sign mismatch.
11007 | 16 | Conversion failed because the data value overflowed the data type used by the provider.
11008 | 16 | The provider cannot allocate memory or open another storage object on this column.
11009 | 16 | The provider cannot determine the value for this column.
11010 | 16 | The user did not have permission to write to the column.
11011 | 16 | The data value violated the integrity constraints for the column.
11012 | 16 | The data value violated the schema for the column.
11013 | 16 | The column had a bad status.
11014 | 16 | The column used the default value.
11015 | 16 | The column was skipped when setting data.
11031 | 16 | The row was successfully deleted.
11032 | 16 | The table was in immediate-update mode, and deleting a single row caused more than one row to be deleted in the data source.
11033 | 16 | The row was released even though it had a pending change.
11034 | 16 | Deletion of the row was canceled during notification.
11036 | 16 | The rowset was using optimistic concurrency and the value of a column has been changed after the containing row was last fetched or resynchronized.
11037 | 16 | The row has a pending delete or the deletion had been transmitted to the data source.
11038 | 16 | The row is a pending insert row.
11039 | 16 | DBPROP_CHANGEINSERTEDROWS was VARIANT_FALSE and the insertion for the row has been transmitted to the data source.
11040 | 16 | Deleting the row violated the integrity constraints for the column or table.
11041 | 16 | The row handle was invalid or was a row handle to which the current thread does not have access rights.
11042 | 16 | Deleting the row would exceed the limit for pending changes specified by the rowset property DBPROP_MAXPENDINGROWS.
11043 | 16 | The row has a storage object open.
11044 | 16 | The provider ran out of memory and could not fetch the row.
11045 | 16 | User did not have sufficient permission to delete the row.
11046 | 16 | The table was in immediate-update mode and the row was not deleted due to reaching a limit on the server, such as query execution timing out.
11047 | 16 | Updating did not meet the schema requirements.
11048 | 16 | There was a recoverable, provider-specific error, such as an RPC failure.
11100 | 16 | The provider indicates that conflicts occurred with other properties or requirements.
11101 | 16 | Could not obtain an interface required for text, ntext, or image access.
11102 | 16 | The provider could not support a required row lookup interface.
11103 | 16 | The provider could not support an interface required for the UPDATE/DELETE/INSERT statements.
11104 | 16 | The provider could not support insertion on this table.
11105 | 16 | The provider could not support updates on this table.
11106 | 16 | The provider could not support deletion on this table.
11107 | 16 | The provider could not support a row lookup position.
11108 | 16 | The provider could not support a required property.
11109 | 16 | The provider does not support an index scan on this data source.


Errors 13000 - 13999

Error | Severity | Description
13001 | 10 | data page
13002 | 10 | index page
13003 | 10 | leaf page
13004 | 10 | last
13005 | 10 | root
13006 | 10 | read from
13007 | 10 | send to
13008 | 10 | receive
13009 | 10 | send
13010 | 10 | read
13011 | 10 | wait
13012 | 10 | A USE database statement
13013 | 10 | a procedure or trigger
13014 | 10 | A DISTINCT clause
13015 | 10 | a view
13016 | 10 | An INTO clause
13017 | 10 | An ORDER BY clause
13018 | 10 | A COMPUTE clause
13019 | 10 | a SELECT INTO statement
13020 | 10 | option
13021 | 10 | offset option
13022 | 10 | statistics option
13023 | 10 | parameter option
13024 | 10 | function name
13026 | 10 | parameter
13027 | 10 | convert specification
13028 | 10 | index
13029 | 10 | table
13030 | 10 | database
13031 | 10 | procedure
13032 | 10 | trigger
13033 | 10 | view
13034 | 10 | default
13035 | 10 | rule
13036 | 10 | system
13037 | 10 | unknown type
13038 | 10 | SET statement
13039 | 10 | column
13040 | 10 | type
13041 | 10 | character string
13042 | 10 | integer
13043 | 10 | identifier
13044 | 10 | number
13045 | 10 | integer value
13046 | 10 | floating point value
13047 | 10 | object
13048 | 10 | column heading
13076 | 10 | an assignment
13077 | 10 | a cursor declaration
13078 | 10 | replication filter
13079 | 10 | variable assignment
13080 | 10 | statistics
13081 | 10 | file
13082 | 10 | filegroup
13083 | 10 | server
13084 | 0 | write


Errors 14000 - 14999

Error | Severity | Description
14001 | 16 | The destination table must not be qualified.
14002 | 16 | Could not find the 'Sync' subsystem with the task ID %ld.
14003 | 16 | You must supply a publication name.
14004 | 16 | %s must be in the current database.
14005 | 16 | Could not drop publication. A subscription exists on it.
14006 | 16 | Could not drop the publication.
14008 | 11 | There are no publications.
14009 | 11 | There are no articles for publication '%s'.
14010 | 16 | The remote server is not defined as a subscription server.
14012 | 16 | The @status parameter value must be either 'active' or 'inactive'.
14013 | 16 | This database is not enabled for publication.
14014 | 16 | The synchronization method (@sync_method) must be either '[bcp] native' or '[bcp] character'.
14015 | 16 | The replication frequency (@repl_freq) must be either 'continuous' or 'snapshot'.
14016 | 16 | The publication '%s' already exists.
14017 | 16 | Invalid @restricted parameter value. Valid options are 'true' or 'false'.
14018 | 16 | Could not create the publication.
14019 | 16 | The @operation parameter value must be either 'add' or 'drop'.
14020 | 16 | Could not obtain the column ID for the specified column. The column was not correctly added to the article.
14021 | 16 | The column was not correctly added to the article.
14022 | 16 | The parameter must be 'description', 'sync_object', 'type', 'status', 'ins_cmd', 'del_cmd', 'upd_cmd', 'filter', 'dest_table', 'creation_script', 'pre_creation_cmd', or 'script_options'.
14023 | 16 | The type must be 'logbased', 'logbased manualfilter', 'logbased manualview', or 'logbased manualboth'.
14025 | 10 | The article was successfully updated.
14027 | 11 | %s does not exist in the current database.
14028 | 16 | Only user tables and procedures can be published.
14029 | 16 | The vertical partition switch must be either 'true' or 'false'.
14030 | 16 | The article '%s' already exists in publication '%s'.
14031 | 16 | User tables and views are the only valid synchronization objects.
14032 | 16 | The value of parameter %s cannot be 'all'. It is reserved by replication stored procedures.
14033 | 16 | Could not change replication frequency because there are active subscriptions on the publication.
14034 | 16 | The publication name (@publication) cannot be the keyword 'all'.
14035 | 16 | The replication option '%s' of database '%s' has already been set to true.
14036 | 16 | Could not enable database for publishing.
14037 | 16 | The replication option '%s' of database '%s' has already been set to false.
14038 | 16 | Could not disable database for publishing.
14039 | 16 | Could not construct column clause for article view. Reduce the number of columns or create the view manually.
14040 | 16 | The server '%s' is already a subscriber.
14042 | 16 | Could not create Subscriber.
14043 | 16 | The parameter %s cannot be NULL.
14044 | 16 | Owner-qualified %s names are not allowed.
14046 | 16 | Could not drop article. A subscription exists on it.
14047 | 16 | Could not drop %s.
14048 | 16 | The server '%s' is not a Subscriber.
14049 | 16 | Stored procedures for replication are the only objects that can be used as a filter.
14050 | 11 | You do not have a subscription on this publication or article.
14051 | 16 | The parameter value must be 'sync_type' or 'dest_db'.
14052 | 16 | The @sync_type parameter value must be 'automatic' or 'none'.
14053 | 16 | The subscription could not be updated at this time.
14054 | 10 | The subscription was successfully updated.
14055 | 10 | The subscription does not exist.
14056 | 16 | The subscription could not be dropped at this time.
14057 | 16 | The subscription could not be created.
14058 | 16 | The subscription already exists.
14061 | 16 | The @pre_creation_cmd parameter value must be 'none', 'drop', 'delete', or 'truncate'.
14062 | 10 | The Subscriber was dropped.
14063 | 11 | The remote server does not exist or has not been designated as a valid Subscriber.
14065 | 16 | The @status parameter value must be 'active', 'inactive', or 'subscribed'.
14066 | 16 | The previous status must be 'active', 'inactive', or 'subscribed'.
14067 | 16 | The status value is the same as the previous status value.
14068 | 16 | Could not update sysobjects. The subscription status could not be changed.
14069 | 16 | Could not update sysarticles. The subscription status could not be changed.
14070 | 16 | Could not update the distribution database subscription table. The subscription status could not be changed.
14071 | 16 | Could not find the Distributor, or the distribution database, for the local server. The Distributor may not be installed, or the local server may not be configured as a Distribution Publisher at the Distributor.
14074 | 16 | The server '%s' is already listed as a Publisher.
14075 | 16 | The Publisher could not be created at this time.
14076 | 16 | Could not grant replication login privilege to '%s'.
14077 | 10 | The publication was successfully updated.
14078 | 16 | The parameter must be 'description', 'taskid', 'sync_method', 'status', 'repl_freq', 'restricted', 'retention', 'immediate_sync', 'enabled_for_internet', 'allow_push', 'allow_pull', 'allow_anonymous', or 'retention'.
14079 | 16 | Do not qualify the destination object name with a database. Use the 'dest_db' property of sp_changesubscription to specify a destination database.
14080 | 11 | The remote server does not exist or has not been designated as a valid Publisher.
14085 | 16 | The Subscriber information could not be obtained from the Distributor.
14088 | 16 | The table '%s' must have a primary key in order to be published using the transaction-based method.
14091 | 16 | The @type parameter passed to sp_helpreplicationdb must be either 'pub' or 'sub'.
14092 | 16 | Could not change article because there is an existing subscription to the article.
14093 | 16 | Cannot grant or revoke access directly on publication '%s' because it uses the default publication access list.
14094 | 16 | Could not subscribe to article '%s' because the ODBC Subscriber '%s' does not support the @pre_creation_cmd parameter value 'truncate'.
14095 | 16 | Could not subscribe to publication '%s' because ODBC Subscriber '%s' only supports the @sync_method parameter value 'bcp character' .
14096 | 16 | The path and name of the table creation script must be specified if the @pre_creation_cmd parameter value is 'drop'.
14097 | 16 | The @type parameter value must be 'no column names', 'include column names', 'string literals', or 'parameters'.
14098 | 16 | Cannot drop Distribution Publisher '%s'. The remote Publisher is using '%s' as Distributor.
14099 | 16 | The server '%s' is already defined as a Distributor.
14101 | 16 | The publication '%s' already has a Snapshot Agent defined.
14105 | 10 | You have successfully updated the distribution database property '%s'.
14106 | 10 | Distribution retention periods must be greater than 0.
14107 | 10 | The @max_distretention value must be larger than the @min_distretention value.
14108 | 10 | Removed %ld history records from %s.
14109 | 10 | The @security_mode parameter value must be 0 (SQL Server Authentication) or 1 (Windows NT Authentication).
14110 | 16 | For sp_changearticle, the @property parameter value must be 'name', 'description', 'dest_object', 'creation_script', 'pre_creation_cmd', or 'schema_option'.
14111 | 16 | The @pre_creation_cmd parameter value must be 'none' or 'drop'.
14112 | 16 | This procedure can only be executed against table-based articles.
14113 | 16 | Could not execute '%s'. Check '%s' in the install directory.
14114 | 16 | '%s' is not configured as a Distributor.
14115 | 16 | The property parameter value must be %s.
14117 | 16 | '%s' is not configured as a distribution database.
14118 | 16 | The @type parameter value must be 'proc exec', or 'serializable proc exec'.
14119 | 16 | Could not add the distribution database '%s'. This distribution database already exists.
14120 | 16 | Could not drop the distribution database '%s'. This distributor database is associated with a Publisher.
14121 | 16 | Could not to drop the Distributor '%s'. This Distributor has associated distribution databases.
14122 | 16 | The @article parameter value must be 'all' for immediate_sync publications.
14123 | 16 | The subscription @sync_type parameter value 'manual' is no longer supported.
14124 | 16 | An immediate_sync publication must have at least one article before it can be subscribed to.
14126 | 16 | You do not have the required permissions to complete the operation.
14128 | 16 | Invalid @subscription_type parameter value. Valid options are 'push' or 'pull'.
14129 | 16 | The @status parameter value must be NULL for 'automatic' sync_type when you add subscriptions to an immediate_sync publication.
14135 | 16 | There is no subscription on Publisher '%s', publisher database '%s', publication '%s'.
14136 | 16 | The keyword 'all' is reserved by replication stored procedures.
14137 | 16 | The @value parameter value must be either 'true' or 'false'.
14138 | 16 | The @optname parameter value must be either 'publish' or 'merge publish'.
14139 | 16 | The replication system table '%s' already exists.
14143 | 16 | Cannot drop Distributor Publisher '%s'. There are Subscribers associated with it in the distribution database '%s'.
14144 | 16 | Cannot drop Subscriber '%s'. There are subscriptions from it in the published database '%s'.
14145 | 16 | You must give the path of a user-supplied article creation script if you enable the schema option of using user-supplied schema script (schema_option & 0x1 = 0).
14146 | 16 | The article parameter '@schema_option' cannot be NULL.
14147 | 16 | Restricted publications are no longer supported.
14148 | 16 | Invalid '%s' value. Valid values are 'true' or 'false'.
14149 | 10 | Removed %ld replication history records in %s seconds (%ld row/secs).
14150 | 10 | Replication-%s: agent %s succeeded. %s
14151 | 18 | Replication-%s: agent %s failed. %s
14152 | 10 | Replication-%s: agent %s scheduled for retry. %s
14153 | 10 | Replication-%s: agent %s warning. %s
14154 | 16 | The Distributor parameter must be '@heartbeat_interval'.
14155 | 16 | Invalid article ID specified for procedure script generation.
14156 | 16 | The custom stored procedure was not specified in the article definition.
14157 | 10 | The subscription created by Subscriber '%s' to publication '%s' has expired and has been dropped.
14158 | 10 | Replication-%s: agent %s: %s.
14159 | 16 | Could not change property '%s' for article '%s' because there is an existing subscription to the article.
14200 | 16 | The specified '%s' is invalid.
14201 | 10 | 0 (all steps)..
14202 | 10 | before or after @active_start_time
14203 | 10 | sp_helplogins [excluding Windows NT groups]
14204 | 10 | 0 (non-idle), 1 (executing), 2 (waiting for thread), 3 (between retries), 4 (idle), 5 (suspended), 7 (performing completion actions)
14205 | 10 | (unknown)
14206 | 10 | 0..n seconds
14207 | 10 | -1 [no maximum], 0..n
14208 | 10 | 1..7 [1 = E-mail, 2 = Pager, 4 = NetSend]
14209 | 10 | 0..127 [1 = Sunday .. 64 = Saturday]
14210 | 10 | notification
14211 | 10 | server
14212 | 10 | (all jobs)
14213 | 16 | Core Job Details:
14214 | 16 | Job Steps:
14215 | 16 | Job Schedules:
14216 | 16 | Job Target Servers:
14217 | 16 | SQL Server Warning: '%s' has performed a forced defection of TSX server '%s'. Run sp_delete_targetserver at the MSX in order to complete the defection.
14218 | 10 | hour
14219 | 10 | minute
14220 | 10 | second
14221 | 16 | This job has one or more notifications to operators other than '%s'. The job cannot be targeted at remote servers as currently defined.
14222 | 16 | Cannot rename the '%s' operator.
14223 | 16 | Cannot modify or delete operator '%s' while this server is a %s.
14224 | 0 | Warning: The server name given is not the current MSX server ('%s').
14225 | 16 | Warning: Could not determine local machine name. This prevents MSX operations from being posted.
14226 | 0 | %ld history entries purged.
14227 | 0 | Server defected from MSX '%s'. %ld job(s) deleted.
14228 | 0 | Server MSX enlistment changed from '%s' to '%s'.
14229 | 0 | Server enlisted into MSX '%s'.
14230 | 0 | SP_POST_MSX_OPERATION: %ld %s download instruction(s) posted.
14231 | 0 | SP_POST_MSX_OPERATION Warning: The specified %s ('%s') is not involved in a multiserver job.
14232 | 16 | Specify either a job_name, job_id, or an originating_server.
14233 | 16 | Specify a valid job_id (or 0x00 for all jobs).
14234 | 16 | The specified '%s' is invalid (valid values are returned by %s).
14235 | 16 | The specified '%s' is invalid (valid values are greater than 0 but excluding %ld).
14236 | 0 | Warning: Non-existent step referenced by %s.
14237 | 16 | When an action of 'REASSIGN' is specified, the New Login parameter must also be supplied.
14238 | 0 | %ld jobs deleted.
14239 | 0 | %ld jobs reassigned to %s.
14240 | 0 | Job applied to %ld new servers.
14241 | 0 | Job removed from %ld servers.
14242 | 16 | Only a system administrator can reassign ownership of a job.
14243 | 0 | Job '%s' started successfully.
14244 | 16 | Only a system administrator can reassign tasks.
14245 | 16 | Specify either the @name, @id, or @loginname of the task(s) to be deleted.
14246 | 16 | Specify either the @currentname or @id of the task to be updated.
14247 | 16 | Only a system administrator can view tasks owned by others.
14248 | 16 | This login is the owner of %ld job(s). You must delete or reassign these jobs before the login can be dropped.
14249 | 16 | Specify either @taskname or @oldloginname when reassigning a task.
14250 | 16 | The specified %s is too long. It must contain no more than %ld characters.
14251 | 16 | Cannot specify '%s' as the operator to be notified.
14252 | 16 | Cannot perform this action on a job you do not own.
14253 | 0 | %ld (of %ld) job(s) stopped successfully.
14254 | 0 | Job '%s' stopped successfully.
14255 | 16 | The owner ('%s') of this job is either an invalid login, or is not a valid user of database '%s'.
14256 | 16 | Cannot start job '%s' (ID %s) because it does not have any job server(s) defined.
14257 | 16 | Cannot stop job '%s' (ID %s) because it does not have any job server(s) defined.
14258 | 16 | Cannot perform this operation while SQLServerAgent is starting. Try again later.
14259 | 16 | A schedule (ID %ld, '%s') for this job with this definition already exists.
14260 | 16 | You do not have sufficient permission to run this command.
14261 | 16 | The specified %s ('%s') already exists.
14262 | 16 | The specified %s ('%s') does not exist.
14263 | 16 | Target server '%s' is already a member of group '%s'.
14264 | 16 | Target server '%s' is not a member of group '%s'.
14265 | 25 | The MSSQLServer service aborted unexpectedly.
14266 | 16 | The specified '%s' is invalid (valid values are: %s).
14267 | 16 | Cannot add a job to the '%s' job category.
14268 | 16 | There are no jobs at this server that originated from server '%s'.
14269 | 16 | Job '%s' is already targeted at server '%s'.
14270 | 16 | Job '%s' is not currently targeted at server '%s'.
14271 | 16 | A target server cannot be named '%s'.
14272 | 16 | Object-type and object-name must be supplied as a pair.
14273 | 16 | You must provide either @job_id or @job_name (and, optionally, @schedule_name), or @schedule_id.
14274 | 16 | Cannot add, update, or delete a job (or its steps or schedules) that originated from an MSX server.
14275 | 16 | The originating server must be either '(local)' or '%s'.
14276 | 16 | '%s' is a permanent %s category and cannot be deleted.
14277 | 16 | The command script does not destroy all the objects that it creates. Revise the command script.
14278 | 16 | The schedule for this job is invalid (reason: %s).
14279 | 16 | Supply either @job_name or @originating_server.
14280 | 16 | Supply either a job name (and job aspect), or one or more job filter parameters.
14281 | 0 | Warning: The @new_owner_login_name parameter is not necessary when specifying a 'DELETE' action.
14282 | 16 | Supply either a date (created or last modified) and a data comparator, or no date parameters at all.
14283 | 16 | Supply @target_server_groups or @target_servers, or both.
14284 | 16 | Cannot specify a job ID for a new job. An ID will be assigned by the procedure.
14285 | 16 | Cannot add a local job to a multi-server job category.
14286 | 16 | Cannot add a multi-server job to a local job category.
14287 | 16 | The '%s' supplied has an invalid %s.
14288 | 16 | %s cannot be less than %s.
14289 | 16 | %s cannot contain '%s' characters.
14290 | 16 | This job is currently targeted at the local server so cannot also be targeted at a remote server.
14291 | 16 | This job is currently targeted at a remote server so cannot also be targeted at the local server.
14292 | 16 | There are two or more tasks named '%s'. Specify %s instead of %s to uniquely identify the task.
14293 | 16 | There are two or more jobs named '%s'. Specify %s instead of %s to uniquely identify the job.
14294 | 16 | Supply either %s or %s to identify the job.
14295 | 16 | Frequency Type 0x2 (OnDemand) is no longer supported.
14296 | 16 | This server is already enlisted into MSX '%s'.
14297 | 16 | Cannot enlist into the local machine.
14298 | 16 | This server is not currently enlisted into an MSX.
14299 | 16 | Server '%s' is an MSX. Cannot enlist one MSX into another MSX.
14300 | 16 | Circular dependencies exist. Dependency evaluation cannot continue.
14301 | 16 | Logins other than the current user can only be seen by members of the sysadmin role.
14302 | 16 | You must upgrade your client to version 6.5 of SQL-DMO and SQL Server Enterprise Manager to connect to this server. The upgraded versions will administer both SQL Server version 6.5 and 6.0 (if sqlole65.sql is run).
14500 | 16 | Supply either a non-zero message ID, non-zero severity, or non-null performance condition.
14501 | 16 | An alert ('%s') has already been defined on this condition.
14502 | 16 | The @target_name parameter must be supplied when specifying an @enum_type of 'TARGET'.
14503 | 16 | The @target_name parameter should not be supplied when specifying an @enum_type of 'ALL' or 'ACTUAL'.
14504 | 16 | '%s' is the fail-safe operator. You must make another operator the fail-safe operator before '%s' can be dropped.
14505 | 16 | Specify a null %s when supplying a performance condition.
14506 | 16 | Cannot set alerts on message ID %ld.
14507 | 16 | A performance condition must be formatted as: 'object_name|counter_name|instance_name|comparator(> or < or =)|numeric value'.
14542 | 16 | It is invalid for any TSQL step of a multiserver job to have a non-null %s value.
14543 | 16 | Login '%s' owns one or more multiserver jobs. Ownership of these jobs can only be assigned to members of the %s role.
14544 | 16 | This job is owned by '%s'. Only a job owned by a member of the %s role can be a multiserver job.
14545 | 16 | The %s parameter is not valid for a job step of type '%s'.
14546 | 16 | The %s parameter is not supported on Windows 95/98 platforms.
14547 | 10 | Warning: This change will not be downloaded by the target server(s) until an %s for the job is posted using %s.
14548 | 10 | Target server '%s' does not have any jobs assigned to it.
14549 | 10 | (Description not requested.)
14550 | 10 | Command-Line Subsystem
14551 | 10 | Replication Snapshot Subsystem
14552 | 10 | Replication Transaction-Log Reader Subsystem
14553 | 10 | Replication Distribution Subsystem
14554 | 10 | Replication Merge Subsystem
14555 | 10 | Active Scripting Subsystem
14556 | 10 | Transact-SQL Subsystem
14557 | 10 | [Internal]
14558 | 10 | (encrypted command)
14559 | 10 | (append output file)
14560 | 10 | (include results in history)
14561 | 10 | (normal)
14562 | 10 | (quit with success)
14563 | 10 | (quit with failure)
14564 | 10 | (goto next step)
14565 | 10 | (goto step)
14566 | 10 | (idle)
14567 | 10 | (below normal)
14568 | 10 | (above normal)
14569 | 10 | (time critical)
14570 | 10 | (Job outcome)
14571 | 10 | No description available.
14572 | 10 | @freq_interval must be at least 1 for a daily job.
14573 | 10 | @freq_interval must be a valid day of the week bitmask [Sunday = 1 .. Saturday = 64] for a weekly job.
14574 | 10 | @freq_interval must be between 1 and 31 for a monthly job.
14575 | 10 | @freq_relative_interval must be one of 1st (0x1), 2nd (0x2), 3rd [0x4], 4th (0x8) or Last (0x10).
14576 | 10 | @freq_interval must be between 1 and 10 (1 = Sunday .. 7 = Saturday, 8 = Day, 9 = Weekday, 10 = Weekend-day) for a monthly-relative job.
14577 | 10 | @freq_recurrence_factor must be at least 1.
14578 | 10 | Starts whenever the CPU usage has remained below %ld percent for %ld seconds.
14579 | 10 | Automatically starts when SQLServerAgent starts.
14580 | 10 | job
14585 | 16 | Only the owner of DTS Package '%s' or a member of the sysadmin role may reassign its ownership.
14586 | 16 | Only the owner of DTS Package '%s' or a member of the sysadmin role may create new versions of it.
14587 | 16 | Only the owner of DTS Package '%s' or a member of the sysadmin role may drop it or any of its versions.
14588 | 10 | ID.VersionID =
14589 | 10 | [not specified]
14590 | 16 | DTS Package '%s' already exists with a different ID in this category.
14591 | 16 | DTS Category '%s' already exists in the specified parent category.
14592 | 16 | DTS Category '%s' was found in multiple parent categories. You must uniquely specify the category to be dropped.
14593 | 16 | DTS Category '%s' contains packages and/or other categories. You must drop these first, or specify a recursive drop.
14594 | 10 | DTS Package
14595 | 16 | DTS Package '%s' exists in different categories. You must uniquely specify the package.
14596 | 16 | DTS Package '%s' exists in another category.
14597 | 16 | DTS Package ID '%s' already exists with a different name.
14598 | 16 | Cannot drop the Local, Repository, or LocalDefault DTS categories.
14599 | 10 | Name


Errors 15000 - 15999

Error | Severity | Description
15000 | 16 | Only members of the sysadmin role or the database owner can execute this stored procedure.
15001 | 16 | %s does not exist.
15002 | 16 | The procedure '%s' cannot be executed within a transaction.
15003 | 16 | Only members of the %s role can execute this stored procedure.
15004 | 16 | Name cannot be NULL.
15005 | 0 | Statistics for all tables have been updated.
15006 | 16 | '%s' is not a valid name because it contains invalid characters.
15007 | 16 | The login '%s' does not exist.
15008 | 16 | User '%s' does not exist in the current database.
15009 | 16 | The object '%s' does not exist in database '%s'.
15010 | 16 | The database '%s' does not exist. Use sp_helpdb to show available databases.
15011 | 16 | Database option '%s' does not exist.
15012 | 16 | The device '%s' does not exist. Use sp_helpdevice to show available devices.
15013 | 0 | Table '%s': No columns without statistics found.
15014 | 16 | The role '%s' does not exist in the current database.
15015 | 16 | The server '%s' does not exist. Use sp_helpserver to show available servers.
15016 | 16 | The default '%s' does not exist.
15017 | 16 | The rule '%s' does not exist.
15018 | 0 | Table '%s': Creating statistics for the following columns:
15019 | 16 | The extended stored procedure '%s' does not exist.
15020 | 0 | Statistics have been created for the %d listed columns of the above tables.
15021 | 16 | There are no remote users mapped to any local user from remote server '%s'.
15022 | 16 | The specified user name is already aliased.
15023 | 16 | User or role '%s' already exists in the current database.
15024 | 16 | The group '%s' already exists in the current database.
15025 | 16 | The login '%s' already exists.
15026 | 16 | Logical device '%s' already exists.
15027 | 16 | There are no remote users mapped to local user '%s' from remote server '%s'.
15028 | 16 | The server '%s' already exists.
15029 | 16 | The data type '%s' already exists in the current database.
15030 | 16 | The read-only bit cannot be turned off because the database is in standby mode.
15031 | 0 | 'Virtual_device' device added.
15032 | 16 | The database '%s' already exists.
15033 | 16 | '%s' is not a valid official language name.
15034 | 16 | The application role password must not be NULL.
15035 | 16 | '%s' is not a database device.
15036 | 16 | The data type '%s' does not exist.
15037 | 16 | The physical data type '%s' does not allow nulls.
15038 | 16 | User-defined data types based on timestamp are not allowed.
15039 | 16 | The language %s already exists in syslanguages.
15040 | 16 | User-defined error messages must have an ID greater than 50000.
15041 | 16 | User-defined error messages must have a severity level between 1 and 25.
15042 | 16 | Only members of the sysadmin role can add messages with severity levels greater than 18 or those which use the TRUE (for WITH_LOG) option.
15043 | 16 | You must specify 'REPLACE' to overwrite an existing message.
15044 | 16 | '%s' is an unknown device type. Use 'disk', 'tape', or 'pipe'.
15045 | 16 | The logical name cannot be NULL.
15046 | 16 | The physical name cannot be NULL.
15047 | 16 | The only permitted options for a tape device are 'skip' and 'noskip'.
15048 | 0 | Valid values of database compatibility level are %d, %d, or %d.
15049 | 11 | Cannot unbind from '%s'. Use ALTER TABLE DROP CONSTRAINT.
15050 | 11 | Cannot bind default '%s'. The default must be created using the CREATE DEFAULT statement.
15051 | 11 | Cannot rename the table because it is published for replication.
15052 | 0 | Prior to updating sysdatabases entry for database '%s', mode = %d and status = %d (status suspect_bit = %d).
15053 | 16 | Objects exist which are not owned by the database owner.
15054 | 0 | The current compatibility level is %d.
15055 | 11 | Error. Updating sysdatabases returned @@error <> 0.
15056 | 0 | No row in sysdatabases was updated because mode and status are already correctly reset. No error and no changes made.
15057 | 16 | List of %s name contains spaces, which are not allowed.
15058 | 16 | List of %s has too few names.
15059 | 16 | List of %s has too many names.
15060 | 16 | List of %s names contains name(s) which have '%s' non-alphabetic characters.
15061 | 16 | Add device request denied. A physical device named '%s' already exists.
15062 | 16 | The guest user cannot be mapped to a login name.
15063 | 16 | The login already has an account under a different user name.
15064 | 11 | PRIMARY KEY and UNIQUE KEY constraints do not have space allocated.
15065 | 16 | All user IDs have been assigned.
15066 | 16 | A default-name mapping of a remote login from remote server '%s' already exists.
15067 | 16 | '%s' is not a local user. Remote login denied.
15068 | 16 | A remote user '%s' already exists for remote server '%s'.
15069 | 16 | One or more users are using the database. The requested operation cannot be completed.
15070 | 0 | Object '%s' was successfully marked for recompilation.
15071 | 16 | Usage: sp_addmessage <msgnum>,<severity>,<msgtext> [,<language> [,FALSE | TRUE [,REPLACE]]]
15072 | 16 | Usage: sp_addremotelogin remoteserver [, loginame [,remotename]]
15073 | 0 | For row in sysdatabases for database '%s', the status bit %d was forced off and mode was forced to 0.
15074 | 0 | Warning: You must recover this database prior to access.
15075 | 16 | The data type '%s' is reserved for future use.
15076 | 16 | Default, table, and user data types must be in the current database.
15077 | 16 | Rule, table, and user data type must be in the current database.
15078 | 16 | The table or view must be in the current database.
15079 | 10 | Queries processed: %d.
15082 | 11 | NULL is not an acceptable parameter value for this procedure. Use a percent sign instead.
15084 | 16 | The column or user data type must be in the current database.
15085 | 16 | Usage: sp_addtype name, 'data type' [,'NULL' | 'NOT NULL']
15086 | 16 | Invalid precision specified. Precision must be between 1 and 38.
15087 | 16 | Invalid scale specified. Scale must be less than precision and positive.
15088 | 16 | The physical data type is fixed length. You cannot specify the length.
15089 | 11 | Cannot change the '%s' option of a database while another user is in the database.
15090 | 16 | There is already a local server.
15091 | 16 | You must specify a length with this physical data type.
15092 | 16 | Invalid length specified. Length must be between 1 and 8000 bytes.
15093 | 16 | '%s' is not a valid date order.
15094 | 16 | '%s' is not a valid first day.
15095 | 16 | Insert into syslanguages failed. Language not added.
15096 | 16 | Only members of the sysadmin role or '%s' can change the default language for '%s'.
15100 | 16 | Usage: sp_bindefault defaultname, objectname [, 'futureonly']
15101 | 16 | Cannot bind a default to a column of data type timestamp.
15102 | 16 | Cannot bind a default to an identity column.
15103 | 16 | Cannot bind a default to a column created with or altered to have a default value.
15104 | 16 | You do not own a table named '%s' that has a column named '%s'.
15105 | 16 | You do not own a data type with that name.
15106 | 16 | Usage: sp_bindrule rulename, objectname [, 'futureonly']
15107 | 16 | Cannot bind a rule to a column of data type text, ntext, image, or timestamp.
15108 | 16 | Only members of the sysadmin role can change the owner of a database.
15109 | 16 | Cannot change the owner of the master database.
15110 | 16 | The proposed new database owner is already a user in the database.
15111 | 16 | The proposed new database owner is already aliased in the database.
15123 | 16 | The configuration option '%s' does not exist, or it may be an advanced option.
15124 | 16 | The configuration option '%s' is not unique.
15125 | 16 | Only members of the sysadmin role can change configuration parameters.
15127 | 16 | Cannot set the default language to a language ID not defined in syslanguages.
15129 | 16 | '%d' is not a valid value for configuration option '%s'.
15131 | 16 | Usage: sp_dbremove <dbname> [,dropdev]
15132 | 16 | Cannot change default database belonging to someone else.
15134 | 16 | No alias exists for the specified user.
15139 | 16 | The device is a RAM disk and cannot be used as a default device.
15140 | 16 | Usage: sp_diskdefault logicalname {defaulton | defaultoff}
15142 | 16 | Cannot drop the role '%s'.
15143 | 16 | '%s' is not a valid option for the @updateusage parameter. Enter either 'true' or 'false'.
15144 | 16 | The role has members. It must be empty before it can be dropped.
15174 | 16 | Login '%s' owns one or more database(s). Change the owner of the following database(s) before dropping login:
15175 | 16 | Login '%s' is aliased or mapped to a user in one or more database(s). Drop the user or alias before dropping the login.
15176 | 16 | The only valid @parameter value is 'WITH_LOG'.
15177 | 16 | Usage: sp_dropmessage <msg number> [,<language> | 'ALL']
15178 | 16 | Cannot drop a message with an ID less than 50000.
15179 | 16 | Message number %u does not exist.
15180 | 16 | Cannot drop. The data type is being used.
15181 | 16 | Cannot drop the database owner.
15182 | 16 | Cannot drop the guest user from master or tempdb.
15183 | 16 | The user owns objects in the database and cannot be dropped.
15184 | 16 | The user owns data types in the database and cannot be dropped.
15185 | 16 | There is no remote user '%s' mapped to local user '%s' from the remote server '%s'.
15190 | 16 | There are still remote logins for the server '%s'.
15191 | 16 | Usage: sp_dropserver server [, droplogins]
15193 | 16 | This procedure can only be used on system tables.
15194 | 16 | Cannot re-create index on this table.
15197 | 16 | There is no text for object '%s'.
15198 | 16 | The name supplied (%s) is not a user, role, or aliased login.
15200 | 16 | There are no remote servers defined.
15201 | 16 | There are no remote logins for the remote server '%s'.
15202 | 16 | There are no remote logins defined.
15203 | 16 | There are no remote logins for '%s'.
15204 | 16 | There are no remote logins for '%s' on remote server '%s'.
15205 | 16 | There are no servers defined.
15206 | 16 | Invalid Remote Server Option: '%s'.
15210 | 16 | Only members of the sysadmin role can use the loginame option. The password was not changed.
15211 | 16 | Old (current) password incorrect for user. The password was not changed.
15216 | 16 | '%s' is not a valid option for the @delfile parameter.
15218 | 16 | Object '%s' is not a table.
15219 | 16 | You do not own table '%s'. Only members of the sysadmin role or the table owner may perform this action.
15220 | 16 | Usage: sp_remoteoption [remoteserver, loginame, remotename, optname, {true | false}]
15221 | 16 | Remote login option does not exist or cannot be set by user. Run sp_remoteoption with no parameters to see options.
15222 | 16 | Remote login option '%s' is not unique.
15223 | 11 | Error: The input parameter '%s' is not allowed to be null.
15224 | 11 | Error: The value for the @newname parameter contains invalid characters or violates a basic restriction (%s).
15225 | 11 | No item by the name of '%s' could be found in the current database '%s', given that @itemtype was input as '%s'.
15226 | 16 | Only members of the sysadmin role can change the name of a database.
15227 | 16 | The database '%s' cannot be renamed.
15228 | 16 | A member of the sysadmin role must set database '%s' to single user mode with sp_dboption before it can be renamed.
15229 | 16 | Usage: sp_serveroption [server [,optname [,'true' | 'false']]]
15230 | 16 | Server option '%s' does not exist or cannot be set by user. Run sp_serveroption with no parameters to see options.
15231 | 16 | Server option '%s' is not unique.
15232 | 16 | Only members of the sysadmin role may set server options.
15234 | 16 | Object is stored in sysprocedures and has no space allocated directly.
15235 | 16 | Views do not have space allocated.
15236 | 16 | Column '%s' has no default.
15237 | 16 | User data type '%s' has no default.
15238 | 16 | Column '%s' has no rule.
15239 | 16 | User data type '%s' has no rule.
15241 | 16 | Usage: sp_dboption [dbname [,optname [,'true' | 'false']]]
15242 | 16 | Database option '%s' is not unique.
15243 | 16 | The option '%s' cannot be changed for the master database.
15244 | 16 | Only members of the sysadmin role or the database owner may set database options.
15245 | 16 | DBCC DBCONTROL error. Database was not placed offline.
15248 | 11 | Error: The parameter @oldname is either ambiguous or the claimed @itemtype (%s) was wrong.
15249 | 11 | Error: Explicit @itemtype '%s' is unrecognized (%d).
15250 | 16 | The database name component of the object qualifier must be the name of the current database.
15251 | 16 | Invalid '%s' specified. It must be %s.
15252 | 16 | The primary or foreign key table name must be given.
15253 | 11 | Syntax error parsing SQL identifier '%s'.
15254 | 16 | Users other than the database owner or guest exist in the database. Drop them before removing the database.
15255 | 11 | '%s' is not a valid value for @autofix. The only valid value is 'auto'.
15256 | 16 | Usage: sp_certify_removable <dbname> [,'auto']
15257 | 16 | The database that you are attempting to certify cannot be in use at the same time.
15258 | 16 | The database must be owned by a member of the sysadmin role before it can be removed.
15261 | 16 | Usage: sp_create_removable <dbname>,<syslogical>,<sysphysical>,<syssize>,<loglogical>,<logphysical>,<logsize>,<datalogical1>,<dataphysical1>,<datasize1> [,<datalogical2>,<dataphysical2>,<datasize2>...<datalogical16>,<dataphysical16>,<datasize16>]
15262 | 0 | Invalid file size entered. All files must be at least 1 MB.
15264 | 16 | Could not create the '%s' portion of the database.
15266 | 16 | Cannot make '%s' database removable.
15269 | 16 | Logical data device '%s' not created.
15270 | 16 | You cannot specify a length for user data types based on sysname.
15271 | 16 | Invalid @with_log parameter value. Valid values are 'true' or 'false'.
15275 | 16 | FOREIGN KEY constraints do not have space allocated.
15277 | 16 | The only valid @parameter_value values are 'true' or 'false'.
15278 | 16 | Login '%s' is already mapped to user '%s' in database '%s'.
15279 | 16 | You must add the us_english version of this message before you can add the '%s' version.
15280 | 16 | All localized versions of this message must be dropped before the us_english version can be dropped.
15283 | 16 | The name '%s' contains too many characters.
15284 | 16 | The user has granted or revoked privileges to the following in the database and cannot be dropped.
15285 | 16 | The special word '%s' cannot be used for a logical device name.
15286 | 16 | Terminating this procedure. The @action '%s' is unrecognized. Try 'REPORT', 'UPDATE_ONE', or 'AUTO_FIX'.
15287 | 16 | Terminating this procedure. '%s' is a forbidden value for the login name parameter in this procedure.
15288 | 16 | Terminating this procedure. Only %s has the permissions to run the action '%s'.
15289 | 16 | Terminating this procedure. Cannot have an open transaction when this is run.
15290 | 16 | Terminating this procedure. The Action '%s' is incompatible with the other parameter values ('%s', '%s').
15291 | 16 | Terminating this procedure. The %s name '%s' is absent or invalid.
15292 | 0 | The row for user '%s' will be fixed by updating its login link to a login already in existence.
15293 | 0 | Barring a conflict, the row for user '%s' will be fixed by updating its link to a new login. Consider changing the new password from null.
15294 | 0 | The number of orphaned users fixed by adding new logins and then updating users was %d.
15295 | 0 | The number of orphaned users fixed by updating users was %d.
15298 | 0 | New login created.
15300 | 11 | No recognized letter is contained in the parameter value for General Permission Type (%s). Valid letters are in this set: %s.
15302 | 11 | Database_Name should not be used to qualify owner.object for the parameter into this procedure.
15303 | 11 | The "user options" config value (%d) was rejected because it would set incompatible options.
15304 | 16 | The severity level of the '%s' version of this message must be the same as the severity level (%ld) of the us_english version.
15305 | 16 | The @TriggerType parameter value must be 'insert', 'update', or 'delete'.
15306 | 16 | Cannot change the compatibility level of replicated or distributed databases.
15307 | 16 | Could not change the merge publish option because the server is not set up for replication.
15308 | 16 | You must set database '%s' to single user mode with sp_dboption before fixing indexes on system tables.
15311 | 16 | The file named '%s' does not exist.
15312 | 16 | The file named '%s' is a primary file and cannot be removed.
15318 | 0 | All fragments for database '%s' on device '%s' are now dedicated for log usage only.
15319 | 17 | Error: DBCC DBREPAIR REMAP failed for database '%s' (device '%s').
15321 | 16 | There was some problem removing '%s' from sysaltfiles.
15322 | 0 | File '%s' was removed from tempdb, and will take effect upon server restart.
15323 | 16 | The selected index does not exist on table '%s'.
15324 | 16 | The option %s cannot be changed for the '%s' database.
15325 | 16 | The current database does not contain a %s named '%ls'.
15326 | 0 | No extended stored procedures exist.
15327 | 0 | The database is now offline.
15328 | 0 | The database is offline already.
15330 | 11 | There are no matching rows on which to report.
15331 | 11 | The user '%s' cannot take the action auto_fix because another user has SUID = %d.
15333 | 11 | Error: the qualified @oldname references a database (%s) other than the current database.
15334 | 11 | Error: Only members of the sysadmin role or the database owner can rename items they do not own.
15335 | 11 | Error: The @newname value '%s' is already in use as a %s name and would cause a duplicate that is not permitted.
15337 | 0 | Caution: sysdepends shows that other objects (views, procedures and so on) are referencing this object by its old name. These objects will become invalid, and should be dropped and re-created promptly.
15338 | 0 | The %s was renamed to '%s'.
15339 | 0 | Creating '%s'.
15340 | 0 | Alias user added.
15341 | 0 | Granted database access to '%s'.
15342 | 0 | Replacing message.
15343 | 0 | New message added.
15354 | 0 | Usage: sp_detachdb <dbname>, [TRUE|FALSE]
15358 | 0 | User-defined filegroups should be made read-only.
15363 | 16 | The role '%s' already exists in the current database.
15379 | 11 | The server option value '%s' supplied is unrecognized.
15386 | 11 | For input parameter @OptionName you entered the value '%s'. The number of valid option names matching this value is %d (not equal to 1). Terminating this procedure.
15387 | 11 | If the qualified object name specifies a database, that database must be the current database.
15388 | 11 | There are no objects matching the input name '%s' in the current database.
15389 | 11 | The value '%s' for the @OptionValue parameter is unrecognized.
15390 | 11 | Only members of the sysadmin role or the database owner can modify '%s' settings for objects owned by other users.
15391 | 0 | All %d matched objects now have their '%s' setting as '%s'. Updates were required for %d objects.
15392 | 11 | Only members of the sysadmin role can modify the settings for option %s.
15393 | 16 | Commit service transaction (XACT) ID does not exist.
15395 | 11 | The qualified old name could not be found for item type '%s'.
15396 | 11 | Cannot change option %s for an object without first performing a DROP statement then a CREATE statement.
15397 | 11 | Could not change option %s. Not more than one object can be changed per execution for this option. %d objects match the parameter values in the current attempt.
15398 | 11 | Only objects in the master database and owned by a member of the sysadmin role can have the setting changed for option %s.
15399 | 11 | Could not change option %s. This type of change is restricted to objects that have no parameters or columns.
15400 | 11 | Could not change an object of type %s. The setting of option %s cannot be changed for objects of this type. Bypassing object '%s'. Other valid, matching objects will be processed now.
15401 | 11 | Windows NT user or group '%s' not found. Check the name again.
15402 | 11 | '%s' is not a fixed server role.
15403 | 11 | Insufficient permission to add a member to the fixed role '%s'.
15405 | 11 | Cannot use the reserved user or role name '%s'.
15407 | 11 | '%s' is not a valid Windows NT name. Give the complete name: <domain\username>.
15409 | 11 | '%s' is not a role.
15410 | 11 | User or role '%s' does not exist in this database.
15412 | 11 | '%s' is not a known fixed role.
15413 | 11 | Cannot make a role a member of itself.
15415 | 11 | User is a member of more than one group. sp_changegroup is set up for backward compatibility and expects membership in one group at most.
15416 | 16 | Usage: sp_dbcmptlevel [dbname [, compatibilitylevel]]
15417 | 16 | Insufficient permission to change the compatibility level of the '%s' database.
15418 | 16 | Only members of the sysadmin role or the database owner may set the database compatibility level.
15419 | 16 | Supplied parameter @sid should be binary(16).
15420 | 16 | The group '%s' does not exist in this database.
15421 | 16 | The user owns role(s) in the database and cannot be dropped.
15422 | 16 | Application roles can only be activated at the ad hoc level.
15423 | 0 | The password for application role '%s' has been changed.
15424 | 0 | New role added.
15425 | 0 | New application role added.
15426 | 16 | You must specify a provider name with this set of properties.
15427 | 16 | You must specify a provider name for unknown product '%ls'.
15428 | 16 | You cannot specify a provider or any properties for product '%ls'.
15429 | 16 | '%ls' is an invalid product name.
15430 | 19 | Limit exceeded for number of servers.
15431 | 16 | You must specify the @rolename parameter.
15432 | 16 | Stored procedure '%s' can only be executed at the ad hoc level.
15433 | 16 | Supplied parameter @sid is in use.
15434 | 16 | Could not drop login '%s' as the user is currently logged in.
15435 | 0 | Database successfully published.
15436 | 0 | Database successfully enabled for subscriptions.
15437 | 0 | Database successfully published using merge replication.
15438 | 0 | Database is already online.
15439 | 0 | Database is now online.
15440 | 0 | Database is no longer published.
15441 | 0 | Database is no longer enabled for subscriptions.
15442 | 0 | Database is no longer enabled for merge publications.
15443 | 0 | Checkpointing database that was changed.
15444 | 0 | 'Disk' device added.
15445 | 0 | 'Diskette' device added.
15446 | 0 | 'Tape' device added.
15447 | 0 | 'Pipe' device added.
15448 | 0 | New remote login created.
15449 | 0 | Type added.
15450 | 0 | New language inserted.
15451 | 0 | %s messages altered.
15452 | 0 | No alternate languages are available.
15453 | 0 | us_english is always available, even though it is not in syslanguages.
15454 | 0 | Language deleted.
15456 | 0 | Valid configuration options are:
15457 | 0 | Configuration option changed. Run the RECONFIGURE statement to install.
15458 | 0 | Database removed.
15459 | 0 | In the current database, the specified object references the following:
15460 | 0 | In the current database, the specified object is referenced by the following:
15461 | 0 | Object does not reference any object, and no objects reference it.
15462 | 0 | File '%s' closed.
15463 | 0 | Device dropped.
15466 | 0 | Message dropped.
15467 | 0 | Type has been dropped.
15468 | 0 | Remote login dropped.
15469 | 0 | No constraints have been defined for this object.
15470 | 0 | No foreign keys reference this table.
15471 | 0 | The object comments have been encrypted.
15472 | 0 | The object does not have any indexes.
15473 | 0 | Settable remote login options.
15474 | 11 | Only members of the sysadmin role can set remote login options.
15475 | 0 | The database is renamed and in single user mode.
15476 | 0 | A member of the sysadmin role must reset the database to multiuser mode with sp_dboption.
15477 | 0 | Caution: Changing any part of an object name could break scripts and stored procedures.
15478 | 0 | Password changed.
15479 | 0 | Login dropped.
15480 | 0 | Could not grant login access to '%s'.
15481 | 0 | Granted login access to '%s'.
15482 | 0 | Could not deny login access to '%s'.
15483 | 0 | Denied login access to '%s'.
15484 | 0 | Could not revoke login access from '%s'.
15485 | 0 | Revoked login access from '%s'.
15486 | 0 | Default database changed.
15487 | 0 | %s's default language is changed to %s.
15488 | 0 | '%s' added to role '%s'.
15489 | 0 | '%s' dropped from role '%s'.
15490 | 0 | The dependent aliases were also dropped.
15491 | 0 | User has been dropped from current database.
15492 | 0 | Alias user dropped.
15493 | 0 | Role dropped.
15494 | 0 | The application role '%s' is now active.
15495 | 0 | Application role dropped.
15496 | 0 | Group changed.
15497 | 0 | Could not add login using sp_addlogin (user = %s). Terminating this procedure.
15498 | 17 | Inside txn_1a_, update failed. Will roll back (1a1).
15499 | 0 | The dependent aliases were mapped to the new database owner.
15500 | 0 | The dependent aliases were dropped.
15501 | 0 | Database owner changed.
15502 | 0 | Setting database owner to SA.
15503 | 0 | Giving ownership of all objects to the database owner.
15504 | 0 | Deleting users except guest and the database owner from sysusers.
15505 | 0 | The object owner has been changed.
15506 | 0 | Server added.
15507 | 0 | Remote logins for remote server '%s' have been dropped.
15508 | 0 | Server dropped.
15509 | 0 | Settable server options.
15510 | 0 | Server network name set.
15511 | 0 | Default bound to column.
15512 | 0 | Default bound to data type.
15513 | 0 | The new default has been bound to columns(s) of the specified user data type.
15514 | 0 | Rule bound to table column.
15515 | 0 | Rule bound to data type.
15516 | 0 | The new rule has been bound to column(s) of the specified user data type.
15517 | 0 | Option %s turned on.
15518 | 0 | Option %s turned off.
15519 | 0 | Default unbound from table column.
15520 | 0 | Default unbound from data type.
15521 | 0 | Columns of the specified user data type had their defaults unbound.
15522 | 0 | Rule unbound from table column.
15523 | 0 | Rule unbound from data type.
15524 | 0 | Columns of the specified user data type had their rules unbound.
15525 | 0 | sp_checknames is used to search for non 7-bit ASCII characters.
15526 | 0 | in several important columns of system tables. The following
15527 | 0 | columns are searched:
15528 | 0 | In master:
15536 | 0 | In all databases:
15543 | 0 | Looking for non 7-bit ASCII characters in the system tables of database '%s'.
15544 | 0 | Table.column '%s'
15545 | 0 | The following database names contain non 7-bit ASCII characters.
15546 | 0 | If you wish to change these names, use '%s'.
15547 | 0 | The following logins have default database names that contain
15548 | 0 | non 7-bit ASCII characters. If you wish to change these names use
15549 | 0 | sp_defaultdb.
15550 | 0 | The following servers have 'initialization file' names that contain
15551 | 0 | non 7-bit ASCII characters. If you wish to change these names,
15552 | 0 | use UPDATE.
15553 | 0 | Database '%s' has no object, user, and so on
15554 | 0 | names that contain non 7-bit ASCII characters.
15555 | 0 | The database name provided '%s' must be the current database when executing this stored procedure.
15564 | 0 | The following device names contain non 7-bit ASCII characters.
15565 | 0 | The following login names contain non 7-bit ASCII characters.
15566 | 0 | The following remote login names contain non 7-bit ASCII characters.
15567 | 0 | The following server names contain non 7-bit ASCII characters.
15568 | 0 | The following column and parameter names contain non 7-bit ASCII characters.
15569 | 0 | The following index names contain non 7-bit ASCII characters.
15570 | 0 | The following object names contain non 7-bit ASCII characters.
15571 | 0 | The following segment names contain non 7-bit ASCII characters.
15572 | 0 | The following data type names contain non 7-bit ASCII characters.
15573 | 0 | The following user or role names contain non 7-bit ASCII characters.
15600 | 15 | An invalid parameter or option was specified for procedure '%s'.
15601 | 16 | Fulltext Search is not enabled for the current database. Use sp_fulltext_database to enable full-text search.
15602 | 16 | Full-Text catalog '%ls' does not exist.
15603 | 16 | A full-text catalog named '%ls' already exists in this database.
15604 | 16 | Cannot drop full-text catalog '%ls' because it contains a full-text index.
15605 | 16 | A full-text index for table '%ls' has already been created.
15606 | 16 | You must first create a full-text index on table '%ls'.
15607 | 16 | '%ls' is not a valid index to enforce a full-text search key. You must specify a unique, non-nullable, single-column index.
15608 | 16 | Full-text search has already been activated for table '%ls'.
15609 | 16 | Cannot activate full-text search for table '%ls' because no columns have been enabled for full-text search.
15610 | 16 | You must deactivate full-text search on table '%ls' before adding columns to or removing columns from the full-text index.
15611 | 16 | Column '%ls' of table '%ls' cannot be used for full-text search because it is not a character-based column.
15612 | 16 | DBCC DBCONTROL error. Database was not made read-only.
15613 | 0 | The database is now read-only.
15614 | 0 | The database already is read-only.
15615 | 16 | DBCC DBCONTROL error. Database was not made single user.
15616 | 0 | The database is now single user.
15617 | 0 | The database already is single user.
15618 | 0 | The database is now read/write.
15619 | 0 | The database already is read/write.
15620 | 0 | The database is now multiuser.
15621 | 0 | The database already is multiuser.
15622 | 10 | No permission to access database '%s'.


Errors 16000 - 16999

Error | Severity | Description
16801 | 11 | sp_dropwebtask requires at least one defined parameter @outputfile or @procname.
16802 | 11 | sp_dropwebtask cannot find the specified task.
16803 | 11 | sp_runwebtask requires at least one defined parameter @outputfile or @procname.
16804 | 11 | SQL Web Assistant: Could not establish a local connection to SQL Server.
16805 | 11 | SQL Web Assistant: Could not execute the SQL statement.
16806 | 11 | SQL Web Assistant: Could not bind the parameter to the SQL statement.
16807 | 11 | SQL Web Assistant: Could not obtain a bind token.
16808 | 11 | SQL Web Assistant: Could not find the existing trigger. This could be due to encryption.
16809 | 11 | SQL Web Assistant failed on the call to SQLGetData.
16810 | 11 | SQL Web Assistant failed on the call to SQLFetch.
16811 | 11 | SQL Web Assistant failed to bind a results column.
16812 | 11 | SQL Web Assistant: The @query parameter must be specified.
16813 | 11 | SQL Web Assistant: Parameters can be passed either by name or position.
16814 | 11 | SQL Web Assistant: Invalid parameter.
16815 | 11 | SQL Web Assistant: @procname is not valid.
16816 | 11 | SQL Web Assistant: @outputfile is not valid.
16817 | 11 | SQL Web Assistant: Could not read the given file.
16820 | 11 | SQL Web Assistant failed because the state of the Web task in msdb..MSwebtasks is invalid.
16821 | 11 | SQL Web Assistant: Could not open the output file.
16822 | 11 | SQL Web Assistant: Could not open the template file.
16823 | 11 | SQL Web Assistant: Could not allocate enough memory to satisfy this request.
16824 | 11 | SQL Web Assistant: The template file specified in the Web task has a bad size.
16825 | 11 | SQL Web Assistant: Could not read the template file.
16826 | 11 | SQL Web Assistant: Could not find the specified marker for data insertion in the template file.
16827 | 11 | SQL Web Assistant: Could not write to the output file.
16828 | 11 | SQL Web Assistant: @tabborder must be tinyint.
16829 | 11 | SQL Web Assistant: @singlerow must be 0 or 1. Cannot specify this parameter with @nrowsperpage.
16830 | 11 | SQL Web Assistant: The @blobfmt parameter specification is invalid.
16831 | 11 | SQL Web Assistant: The output file name is mandatory for every column specified in the @blobfmt parameter.
16832 | 11 | SQL Web Assistant: Procedure called with too many parameters.
16833 | 11 | SQL Web Assistant: @nrowsperpage must be a positive number and it cannot be used with @singlerow.
16834 | 11 | SQL Web Assistant: Read/write operation on text, ntext, or image column failed.
16838 | 11 | SQL Web Assistant: Could not find the table in the HTML file.
16839 | 11 | SQL Web Assistant: Could not find the matching end table tag in the HTML file.
16841 | 11 | SQL Web Assistant: The @datachg parameter cannot be specified with the given @whentype value.
16842 | 11 | SQL Web Assistant: Could not find and drop the necessary trigger for updating the Web page.
16843 | 11 | SQL Web Assistant: Could not add the necessary trigger for the @datachg parameter. There could be an existing trigger on the table with missing or encrypted text.
16844 | 11 | SQL Web Assistant: Incorrect syntax for the @datachg parameter.
16845 | 11 | SQL Web Assistant: @datachg must be specified for the given @whentype option.
16846 | 11 | SQL Web Assistant: @unittype and/or @numunits must be specified for the given @whentype option.
16847 | 11 | SQL Web Assistant: @fixedfont must be 0 or 1.
16848 | 11 | SQL Web Assistant: @bold must be 0 or 1.
16849 | 11 | SQL Web Assistant: @italic must be 0 or 1.
16850 | 11 | SQL Web Assistant: @colheaders must be 0 or 1.
16851 | 11 | SQL Web Assistant: @lastupdated must be 0 or 1.
16852 | 11 | SQL Web Assistant: @HTMLheader must be in the range 1 to 6.
16853 | 11 | SQL Web Assistant: @username is not valid.
16854 | 11 | SQL Web Assistant: @dbname is not valid.
16855 | 11 | SQL Web Assistant: @whentype must be in the range 1 to 9.
16856 | 11 | SQL Web Assistant: @unittype must be in the range 1 to 4.
16857 | 11 | SQL Web Assistant: @targetdate is invalid. It must be a valid date after 1900-01-01.
16858 | 11 | SQL Web Assistant: The @targettime parameter must be between 0 and 240000.
16859 | 11 | SQL Web Assistant: @dayflags must be 1, 2, 4, 8, 16, 32, or 64.
16860 | 11 | SQL Web Assistant: @numunits must be greater than 0.
16861 | 11 | SQL Web Assistant: @targetdate must be specified for the given @whentype option.
16862 | 11 | SQL Web Assistant: @dayflags must be specified for the given @whentype option.
16863 | 11 | SQL Web Assistant: URL specification is invalid.
16864 | 11 | SQL Web Assistant: @blobfmt is invalid. The file must include the full path to the output_file location.
16865 | 11 | SQL Web Assistant: URL hyperlink text column must not be of the image data type.
16866 | 11 | SQL Web Assistant: Could not obtain the number of columns in @query.
16867 | 11 | SQL Web Assistant: URL hyperlink text column is missing in @query.
16868 | 11 | SQL Web Assistant failed on the call to SQLColAttribute.
16869 | 11 | SQL Web Assistant: Columns of data type image cannot have a template.
16870 | 11 | SQL Web Assistant: Internal error. Could not read @ parameters.
16871 | 11 | SQL Web Assistant: Invalid @charset. Execute sp_enumcodepages for a list of character sets.
16873 | 11 | SQL Web Assistant: Invalid @codepage. Execute sp_enumcodepages for a list of code pages.
16874 | 11 | SQL Web Assistant: Internal error. Cannot translate to the specified code page.
16875 | 11 | SQL Web Assistant: Translation to the desired code page is unavailable on this system.
16876 | 11 | SQL Web Assistant: Internal error. Could not obtain COM interface ID.
16877 | 11 | SQL Web Assistant: Internal error. Could not obtain COM language ID.
16878 | 11 | SQL Web Assistant: Internal error. Could not initialize COM library.
16879 | 11 | SQL Web Assistant: Internal error. Could not translate from Unicode to the specified code page.
16880 | 11 | SQL Web Assistant: Internal error. Could not create translation object. Make sure that the file MLang.dll is in your system directory.
16881 | 16 | SQL Web Assistant: This version is not supported on Win32s of Windows 3.1.
16882 | 16 | SQL Web Assistant: Web task not found. Verify the name of the task for possible errors.
16883 | 16 | SQL Web Assistant: Could not list Web task parameters. xp_readwebtask requires @procname.
16884 | 16 | SQL Web Assistant: Procedure name is required to convert Web tasks.
16885 | 16 | SQL Web Assistant: Could not upgrade the Web task to 7.0. The Web task will remain in 6.5 format and will need to be re-created.
16886 | 16 | SQL Web Assistant: Could not update Web tasks system table. The Web task remains in 6.5 format.
16887 | 16 | SQL Web Assistant: @procname parameter is missing. The parameter is required to upgrade a Web task to 7.0.
16888 | 16 | SQL Web Assistant: Source code page is not supported on the system. Ensure @charset and @codepage language files are installed on your system.
16889 | 16 | SQL Web Assistant: Could not send Web task row to the client.
16890 | 16 | SQL Web Assistant: ODS error occurred. Could not send Web task parameters.
16901 | 16 | %hs: This feature has not been implemented yet.
16902 | 16 | %hs: The value of parameter %hs is invalid.
16903 | 16 | %hs procedure called with incorrect number of parameters.
16904 | 16 | sp_cursor: optype: You can only specify ABSOLUTE in conjunction with DELETE or UPDATE.
16905 | 16 | The cursor is already open.
16907 | 16 | %hs is not allowed in cursor statements.
16909 | 16 | %hs: The cursor identifier value provided (%x) is not valid.
16911 | 16 | %hs: The fetch type %hs cannot be used with forward only cursors.
16914 | 16 | %hs procedure called with too many parameters.
16915 | 16 | A cursor with the name '%.*ls' already exists.
16916 | 16 | A cursor with the name '%.*ls' does not exist.
16917 | 16 | Cursor is not open.
16922 | 16 | Cursor Fetch: Implicit conversion from data type %s to %s is not allowed.
16924 | 16 | Cursorfetch: The number of variables declared in the INTO list must match that of selected columns.
16925 | 16 | The fetch type %hs cannot be used with dynamic cursors.
16926 | 16 | sp_cursoroption: The column ID (%d) does not correspond to a text, ntext, or image column.
16927 | 16 | sp_cursoroption: The cursor already has a name.
16929 | 16 | The cursor is READ ONLY.
16930 | 16 | The requested row is not in the fetch buffer.
16931 | 16 | There are no rows in the current fetch buffer.
16932 | 16 | The cursor has a FOR UPDATE list and the requested column to be updated is not in this list.
16933 | 16 | The cursor does not include the table being modified.
16934 | 16 | Optimistic concurrency check failed. The row was modified outside of this cursor.
16935 | 16 | No parameter values were specified for the sp_cursor-%hs statement.
16936 | 16 | sp_cursor: One or more values parameters were invalid.
16937 | 16 | A server cursor is not allowed on a stored procedure with more than one SELECT statement. Use a default result set or client cursor.
16938 | 16 | sp_cursoropen/sp_cursorprepare: The statement parameter can only be a single select or a single stored procedure.
16940 | 16 | Cannot specify UPDLOCK or TABLOCKX with READ ONLY or INSENSITIVE cursors.
16941 | 16 | Cursor updates are not allowed on tables opened with the NOLOCK option.
16942 | 16 | Could not generate asynchronous keyset. The cursor has been deallocated.
16943 | 16 | Could not complete cursor operation because the table schema changed after the cursor was declared.
16944 | 16 | Cannot specify UPDLOCK or TABLOCKX on a read-only table in a cursor.
16945 | 16 | The cursor was not declared.
16946 | 16 | Could not open the cursor because one or more of its tables have gone out of scope.
16947 | 10 | No rows were updated or deleted.
16948 | 16 | The variable '%.*ls' is not a cursor variable, but it is used in a place where a cursor variable is expected.
16949 | 16 | The variable '%.*ls' is a cursor variable, but it is used in a place where a cursor variable is not valid.
16950 | 10 | The variable '%.*ls' does not currently have a cursor allocated to it.
16951 | 16 | The variable '%.*ls' cannot be used as a parameter because a CURSOR OUTPUT parameter must not have a cursor allocated to it before execution of the procedure.
16952 | 16 | A cursor variable cannot be used as a parameter to a remote procedure call.
16953 | 10 | Updatable keyset cursors on remote tables require a transaction with the REPEATABLE_READ or SERIALIZABLE isolation level.
16954 | 16 | Executing SQL directly; no cursor.
16955 | 16 | Could not create an acceptable cursor.
16956 | 10 | Cursor created was not of the requested type.
16997 | 16 | Could not create cursor because worktable rows of size %d exceed maximum rowsize of %d bytes. Use fewer columns in the declaration.
16998 | 20 | Internal Cursor Error: A cursor work table operation failed.
16999 | 20 | Internal Cursor Error: The cursor is in an invalid state.


Errors 17000 - 17999

Error | Severity | Description
17000 | 10 | Usage: sp_autostats <table_name> [, {ON|OFF} [, <index_name>] ]
17026 | 10 | Using '%1' version '%2'.
17050 | 16 | initerrlog: Could not open error log file '%1'. Operating system error = %2.
17052 | 10 | %1
17053 | 16 | %1: Operating system error %2 encountered.
17054 | 16 | LogEvent: Failed to report the current event. Operating system error = %1.
17055 | 16 | %1 :%n%2
17059 | 16 | Operating system error %1!d!.
17065 | 16 | SQL Server Assertion: File: <%1>, line = %2!d! %nFailed Assertion = '%3' %4.
17066 | 16 | SQL Server Assertion: File: <%1>, line=%2!d! %nFailed Assertion = '%3'.
17067 | 16 | SQL Server Assertion: File: <%1>, line = %2!d! %n%3.
17068 | 10 | PrintStack Request
17112 | 16 | Invalid command option %1!c!.
17113 | 16 | initconfig: Error %2 opening '%1' for configuration information.
17114 | 16 | initconfig: Error %2 reading configuration information from '%1'.
17117 | 10 | initconfig: Number of user connections reduced to %1!ld!.
17118 | 10 | upinit: Warning: Could not raise priority of %1 thread.
17119 | 10 | initconfig: Number of server processes reduced to %1!ld!.
17120 | 16 | SQL Server could not spawn %1 process.
17121 | 16 | SQL Server could not spawn first connection handler.
17122 | 16 | initdata: Warning: Could not set working set size to %1!d! KB.
17123 | 16 | initdata: Could not create thread local storage.
17127 | 16 | initdata: No memory for kernel buffer hash table.
17128 | 16 | initdata: No memory for kernel buffers.
17130 | 16 | initdata: No memory for kernel locks.
17131 | 16 | initdata: Not enough memory for descriptor hash tables.
17132 | 16 | initdata: Not enough memory for descriptors.
17134 | 16 | initmaster: Could not allocate process status structure (PSS).
17138 | 16 | Could not allocate enough memory for data initialization.
17140 | 16 | Could not dispatch SQL Server by Service Control Manager. Operating system error = %1.
17141 | 16 | Could not register Service Control Handler. Operating system error = %1.
17142 | 16 | SQL Server has been paused. No new connections will be allowed.
17143 | 16 | %1: Could not set Service Control Status. Operating system error = %2.
17144 | 10 | SQL Server is disallowing new connections due to 'pause' request from Service Control Manager.
17145 | 10 | Service Control Handler received an invalid control code = %1!d!.
17146 | 10 | SQL Server is allowing new connections due to 'continue' request from Service Control Manager.
17147 | 10 | SQL Server terminating because of system shutdown.
17148 | 10 | SQL Server is terminating due to 'stop' request from Service Control Manager.
17150 | 16 | %1: Error in spawning console process.
17151 | 10 | Maximum number of pages in batch I/O is limited to %1!ld!.
17154 | 16 | initdata: Not enough memory for procedure cache/hash table.
17156 | 16 | initeventlog: Could not initiate the EventLog Service for the key '%1'.
17157 | 16 | %1: Could not initialize Communication Layer.
17158 | 16 | Could not use OPENDSNT.DLL version '%1'. OPENDSNT.DLL version '%2' was expected.
17160 | 16 | Could not use SQLEVN70.DLL version '%1'. SQLEVN70.DLL version '%2' was expected.
17161 | 10 | Master device sector size is %1!d!. SQL Server cannot use the NO_BUFFERING option during I/O.
17162 | 10 | SQL Server is starting at priority class '%1'(%2!d! %3 detected).
17204 | 16 | %1: Could not open device %2 for virtual device number (VDN) %3!d!.
17207 | 16 | %1: Operating system error %3 during the creation/opening of physical device %2.
17208 | 16 | %1: File '%2' has an incorrect size (%3!d! MB, should be %4!d! MB).
17218 | 16 | %1: Operating system error %2 on device '%3' (virtual page %4).
17249 | 16 | %1: Negative outstanding I/O count in process ID = %2!d!.
17252 | 16 | %1: Actual bytes transferred (%2!d!) does not match requested amount (%3!d!) on device '%4' (virtual page %5).
17253 | 10 | The sector size for device %1 is %2!d!. SQL Server cannot use the NO_BUFFERING option during I/O on this device.
17254 | 10 | Warning: Cannot use NO_BUFFERING option on '%1'. Operating system error %2.
17300 | 16 | Not enough memory for process status structure (PSS) allocation.
17302 | 16 | The maximum limit for connections has been reached.
17303 | 16 | freepss: Bad process status structure (PSS) value.
17304 | 10 | Warning: Clean_process system function called from another thread. Outstanding I/O may not complete.
17308 | 16 | %1: Process %2!d! generated an access violation. SQL Server is terminating this process.
17309 | 16 | The current contents of process' input buffer are '%1'.
17310 | 16 | %1: Process %2!d! generated fatal exception %3!lx! %4. SQL Server is terminating this process.
17311 | 16 | SQL Server is aborting. Fatal exception %1!lx! caught.
17402 | 10 | Database '%1' set to single user mode.
17422 | 16 | closetable: Called with null session descriptor (SDES), server process ID (SPID) %1!d!.
17423 | 16 | closetable: Table already closed for session descriptor (SDES) %1!08lx!.
17424 | 10 | Warning: OPEN OBJECTS parameter may be too low.
17426 | 16 | Run sp_configure to increase the parameter value.
17429 | 16 | The srchindex system function failed for index ID = %1!d!, sridoff = %2!d!.
17430 | 10 | Database '%1' set to read only mode.
17550 | 10 | DBCC TRACEON %d, server process ID (SPID) %d.
17551 | 10 | DBCC TRACEOFF %d, server process ID (SPID) %d.
17557 | 16 | DBCC DBRECOVER failed for database ID %d.
17558 | 10 | %\*** Bypassing recovery for database ID %d.
17560 | 10 | DBCC DBREPAIR: '%ls' index restored for '%ls.%ls'.
17561 | 10 | '%ls' index restored for '%ls.%ls'.
17569 | 16 | DBCC cannot find the library initialization function %ls.
17570 | 16 | DBCC cannot find the function %ls in the library %ls.
17571 | 20 | DBCC function %ls in the library %ls generated an access violation. SQL Server is terminating process %d.
17572 | 16 | DBCC cannot free DLL %ls. SQL Server depends on this DLL to function properly.
17654 | 10 | Warning: Process status structure (PSS) found with open session descriptor (SDES). PSPID %1!d!, PSUID %2!d!, PCURDB %3!d!, range entry %4!d!, SDESP 0x%5!lx!, object ID %6!ld!.
17657 | 10 | Attempting to change default sort order ID from %1!d! to %2!d!.
17658 | 10 | SQL Server started in single user mode. Updates allowed to system catalogs.
17660 | 10 | Starting without recovery.
17661 | 10 | Recovering all databases but not clearing tempdb.
17669 | 10 | Table still open. Database ID %1!d!, table ID %2!ld!.
17674 | 10 | Login: %1 %2, server process ID (SPID): %3!d!, kernel process ID (KPID): %4!d!.
17676 | 10 | SQL Server shutdown due to Ctrl-C or Ctrl-Break signal.
17750 | 16 | Cannot load the DLL %ls, or one of the DLLs it references. Reason: %ls.
17751 | 16 | Cannot find the function %ls in the library %ls. Reason: %ls.
17752 | 16 | Extended procedure memory allocation failed for '%ls'.
17753 | 16 | %.*ls can only be executed in the master database.
17801 | 16 | Unknown internal error value.
17802 | 16 | Could not create server event thread.
17803 | 16 | Insufficient memory available.
17804 | 16 | Invalid 'nbytes' value.
17805 | 16 | Invalid buffer received from client.
17806 | 16 | Invalid event specification.
17807 | 16 | Invalid event '%1!ld!'.
17808 | 16 | Invalid starting position specified.
17809 (ODS) | 10 | Could not connect. The maximum number of '%1!ld!' configured user connections are already connected. The system administrator can change the maximum to a higher value using sp_configure.
17810 | 16 | Could not set up Named Pipe.
17811 | 16 | Requested data-conversion does not exist.
17812 | 16 | Data conversion resulted in overflow.
17813 | 16 | Could not convert data due to syntax error in source field.
17814 | 16 | Invalid function parameter.
17815 | 10 | No longer waiting for client connections using '%1!hs!'.
17816 | 16 | No active RPC or parameter value out of range.
17817 | 16 | No active RPC or no parameters.
17818 | 16 | No active RPC or parameter name not found.
17819 | 16 | No active RPC.
17820 | 16 | Invalid data type parameter.
17821 | 16 | Could not set up subchannel.
17822 | 16 | Could not load ListenOn Net-Library '%1!hs!'.
17823 | 16 | Could not read from ListenOn connection.
17824 (Open Data Services) | 16 | Could not write to ListenOn connection '%1!hs!', loginname '%2!ls!', hostname '%3!ls!'. Connection closed.
17825 | 16 | Could not close ListenOn connection.
17826 | 16 | Could not set up ListenOn connection '%1!hs!'.
17827 | 10 | The maximum number of '%1!ld!' remote connections are currently in use.
17828 | 16 | Could not read from local subchannel Named Pipe.
17829 | 16 | Could not copy buffer to subchannel thread, subchannel closed.
17830 | 16 | A subchannel protocol error has occurred.
17831 | 16 | Could not load ListenOn Net-Library '%1!hs!' version '%2!hs!'. Need Net-Library version '%3!hs!' or greater.
17832 | 16 | Connection opened but invalid login packet(s) sent. Connection closed.
17833 | 16 | ListenOn connection '%1!hs!' is already in use.
17834 | 10 | Using '%1!hs!' version '%2!hs!' to listen on '%3!hs!'.
17835 | 16 | Configured for local access only.
17836 | 16 | Could not create I/O completion port.
17837 | 16 | char data type%0
17838 | 16 | variable-length char data type%0
17839 | 16 | binary data type%0
17840 | 16 | variable-length binary data type%0
17841 | 16 | 1-byte integer data type%0
17842 | 16 | 2-byte integer data type%0
17843 | 16 | 4-byte integer data type%0
17844 | 16 | bit data type%0
17845 | 16 | datetime data type%0
17846 | 16 | datetime data type, nulls allowed%0
17847 | 16 | money data type%0
17848 | 16 | money data type, nulls allowed%0
17849 | 16 | 4-byte float data type, nulls allowed%0
17850 | 16 | 8-byte float data type%0
17851 | 16 | 8-byte float data type, nulls allowed%0
17852 | 16 | 4-byte datetime data type, nulls allowed%0
17853 | 16 | 4-byte money data type%0
17854 | 16 | event type%0
17855 | 16 | done packet status field%0
17856 | 16 | error severity type%0
17857 | 16 | 4-byte integer data type, nulls allowed%0
17858 | 16 | image data type%0
17859 | 16 | text data type%0
17868 | 16 | numeric data type%0
17869 | 16 | numeric data type, nulls allowed%0
17870 | 16 | decimal data type%0
17871 | 16 | decimal data type, nulls allowed%0
17872 | 16 | bit data type, nulls allowed%0
17873 | 16 | 8000-byte variable-length binary data type%0
17874 | 16 | 8000-byte variable-length character data type%0
17875 | 16 | 8000-byte binary data type%0
17876 | 16 | 8000-byte character data type%0
17877 | 16 | 8000-byte Unicode character data type%0
17878 | 16 | 8000-byte Unicode variable-length character data type%0
17879 | 16 | Unicode text data type%0
17880 | 16 | uniqueidentifier data type%0


Errors 18000 - 18999

Error | Severity | Description
18002 | 20 | Stored function '%.*ls' in the library '%.*ls' generated an access violation. SQL Server is terminating process %d.
18052 | 16 | Error: %1!d!, Severity: %2!d!, State: %3!d!.
18053 | 16 | Error: %1!d!, Severity: %2!d!, State: %3!d!%n%4%5.
18100 | 10 | Process ID %d killed by hostname %.*ls, host process ID %d.
18101 | 10 | Non-Unicode sort order being reconfigured:
18102 | 10 | old value = %d new value = %d
18103 | 10 | Non-Unicode character set also being reconfigured:
18112 | 10 | Non-Unicode sort order successfully changed.
18113 | 10 | SQL Server shutdown after verifying system indexes.
18114 | 16 | Cannot install '%1' because there can be at most %2!d! languages in cache.
18122 | 10 | Unicode locale ID being reconfigured:
18123 | 10 | Unicode comparison style being reconfigured:
18124 | 10 | Unicode collation successfully changed.
18200 | 16 | %1: Backup device ID %2!d! out of range.
18201 | 16 | ksconsole: Cannot create ConsBufMutex: %1.
18203 | 16 | ksconsole: Cannot create %1 : %2.
18204 | 16 | %1: Backup device ‘%2’ failed to %3. Operating system error = %4.
18205 | 16 | %1: Could not initialize console operation.
18207 | 16 | %1: Null request packet.
18208 | 16 | %1: Backup device ID %2!d! is not active.
18209 | 16 | ksconsole: Could not send request to console client.
18210 | 16 | %1: %2 failure on backup device ‘%3’. Operating system error %4.
18211 | 16 | ksconsole: Could not receive request from console client.
18213 | 16 | ksconsole: Console input request for type 0x%1!x!, ID 0x%2!x! failed.
18214 | 16 | %1: Server console thread not running.
18215 | 16 | %1: Response type 0x%2!x!, ID 0x%3!x! not found in request.
18216 | 16 | %1: Could not access console mutex. Operating system error %2.
18217 | 16 | %1: Type 0x%2!x! not implemented.
18218 | 16 | %1: Incorrect number of parameters: %2!d!.
18219 | 16 | ksconsole: Could not close console connection.
18221 | 10 | ksconsole: Reinitializing the console.
18223 | 16 | %1: No console client connected. Start CONSOLE.EXE.
18225 | 10 | Tape '%1' (Family ID: %2, sequence %3) mounted on tape drive '%4'.
18227 | 10 | Unnamed tape (Family ID: %1, sequence %2) mounted on tape drive '%3'.
18257 | 10 | %1: Device or media does not support %2.
18264 | 10 | Database backed up with following information: Database: %1, creation date and time: %2(%3), pages dumped: %4!d!, first LSN: %5, last LSN: %6, sort order: %7!d!, striped: %8, number of dump devices: %9!d!, device information: (%10).
18265 | 10 | Log backed up with following information: Database: %1, creation date and time: %2(%3), first LSN: %4, last LSN: %5, striped: %6, number of dump devices: %7!d!, device information: (%8).
18266 | 10 | Database file backed up with following information: Database: %1, creation date and time: %2(%3), file list: (%4), pages dumped: %5!d!, sort order: %6!d!, striped: %7, number of dump devices: %8!d!, device information: (%9).
18267 | 10 | Database restored: Database: %1, creation date and time: %2(%3), first LSN: %4, last LSN: %5, striped: %6, number of dump devices: %7!d!, device information: (%8).
18268 | 10 | Log restored: Database: %1, creation date and time: %2(%3), first LSN: %4, last LSN: %5, striped: %6, number of dump devices: %7!d!, device information: (%8).
18269 | 10 | Database file restored: Database: %1, creation date and time: %2(%3), file list: (%4), striped: %5, number of dump devices: %6!d!, device information: (%7).
18270 | 10 | Database incremental changes backed up with following information: Database: %1, creation date and time: %2(%3), pages dumped: %4!d!, first LSN: %5, last LSN: %6, full backup LSN: %7, sort order: %8!d!, striped: %9, number of dump devices: %10!d!, device
18271 | 10 | Database incremental changes restored: Database: %1, creation date and time: %2(%3), first LSN: %4, last LSN: %5, striped: %6, number of dump devices: %7!d!, device information: (%8).
18272 | 16 | I/O error on backup or restore restart-checkpoint file '%1'. Operating system error %2. The statement is proceeding but is non-restartable.
18400 | 16 | Checkpoint process is terminating due to a fatal exception.
18450 | 14 | Login failed for user '%ls'. Reason: Not defined as a valid user of a trusted SQL Server connection.
18452 | 14 | Login failed for user '%ls'. Reason: Not associated with a trusted SQL Server connection.
18453 | 14 | Login succeeded for user '%ls'. Connection: Trusted.
18454 | 14 | Login succeeded for user '%ls'. Connection: Non-Trusted.
18455 | 14 | Login succeeded for user '%ls'.
18456 | 14 | Login failed for user '%ls'.
18457 | 14 | Login failed for user '%ls'. Reason: User name contains a mapping character or is longer than 30 characters.
18458 | 14 | Login failed. The maximum simultaneous user count of %d licenses for this server has been exceeded. Additional licenses should be obtained and registered through the Licensing application in the Windows NT Control Panel.
18459 | 14 | Login failed. The maximum workstation licensing limit for SQL Server access has been exceeded.
18460 | 14 | Login failed. The maximum simultaneous user count of %d licenses for this '%ls' server has been exceeded. Additional licenses should be obtained and installed or you should upgrade to a full version.
18482 | 16 | Could not connect to server '%ls' because '%ls' is not defined as a remote server.
18483 | 16 | Could not connect to server '%ls' because '%ls' is not defined as a remote login at the server.
18485 | 16 | Could not connect to server '%ls' because it is not configured for remote access.
18490 | 16 | Maximum number of processors supported is '%1!ld!'.
18491 | 16 | Could not start due to invalid serial number.
18492 | 16 | The license agreement has been violated for this '%1' version of SQL Server. Cannot start.
18500 | 16 | Could not load startup handler DLL '%1'.
18501 | 16 | Could not load startup handler function '%1'.
18502 | 16 | Could not add startup handler '%1'.
18666 | 17 | Could not free up descriptor in rel_desclosed() system function.
18750 | 16 | %ls: The parameter '%ls' is invalid.
18751 | 16 | %ls procedure called with incorrect number of parameters.
18752 | 16 | Another log reader is replicating the database.
18754 | 16 | Could not open table %d.
18755 | 16 | Could not allocate memory for replication.
18756 | 16 | Could not get replication information for table %d.
18757 | 16 | The database is not published.
18759 | 16 | Replication failure. File '%ls', line %d.
18760 | 16 | Invalid %ls statement for article %d.
18761 | 16 | Commit record at (%ls) has already been distributed. Check DBTABLE.
18762 | 16 | Invalid begin LSN (%ls) for commit record (%ls). Check DBTABLE.
18763 | 16 | Commit record (%ls) reports oldest active LSN as (0:0:0).
18764 | 16 | Execution of filter stored procedure %d failed. See the SQL Server errorlog for more information.
18765 | 16 | Begin LSN specified for replication log scan is invalid.
18766 | 16 | The replbeginlsn field in the DBTABLE is invalid.
18767 | 16 | The specified begin LSN (%ls) for replication log scan occurs before replbeginlsn (%ls).
18768 | 16 | The specified LSN (%ls) for repldone log scan occurs before the current start of log (%ls).
18769 | 16 | The specified LSN (%ls) for repldone log scan is not a replicated commit record.
18831 | 16 | ;// Database ID %d. Could not find object descriptor for object ID %ld.
18833 | 16 | Database ID %d. Could not find clustered index on system table ID %ld. This index should exist in all databases. Run DBCC CHECKTABLE on sysindexes in the database.
18836 | 16 | Database ID %d. Could not find object ID %ld in sysobjects. This system catalog should exist in all databases. Run DBCC CHECKTABLE on sysobjects in this database.
18841 | 16 | Could not locate entry in sysdatabases for database '%.*ls'. No entry found with that name.
18843 | 16 | Could not find database ID %d in sysdatabases.
18872 | 16 | Rec_finish: getnext SCAN_NOINDEX on sysdatabases.dbid=%d failed.
18874 | 16 | Rec_complete: Could not open controlling database (ID %d) of controlling database in multi-database transaction.
18875 | 16 | Recovering database '%.*s'.
18876 | 16 | %d transactions rolled forward in database '%.*ls' (%d).
18877 | 16 | %d transactions rolled back in database '%.*ls' (%d).
18878 | 16 | Recovery complete.
18883 | 16 | ;//Database ID %d: Attempt to mark database SUSPECT. Getnext NC scan on sysobjects.dbid failed.
18884 | 16 | ;//Database '%.*s' (ID %d). Recovery failed. Run DBCC.
18885 | 16 | Page #%lx from table ID #%ld, database ID #%d, not found in cache.
18886 | 16 | Page #%lx from sysindexes in database ID #%X not in cache after reading it into cache.
18887 | 16 | Cannot recover the master database. Exiting.
18892 | 16 | Extent ID %ld which should belong to syslogs belongs to object ID %ld.
18894 | 16 | No more room in the transaction table.
18895 | 16 | Transaction (%d, %d) not found in the transaction table.
18901 | 16 | Could not build an allocation map for the database '%.*s'. Database does not have a DBINFO structure.


Errors 19000 -19999

Errors 19000 - 19999

Error | Severity | Description
19000 | 16 | ODBC error encountered, State = %1, native error = %2, error message = %3.
19001 | 16 | Windows NT Error encountered, %1.
19002 | 16 | MS SQL SNMP Extension Agent starting, %1, version %2.
19003 | 16 | MS SQL SNMP Extension Agent reconnecting.
19004 | 16 | MS SQL SNMP Extension Agent stopping.
19020 | 16 | RPC Net-Library listening on: %1.


Errors 20000 - 20999

Error | Severity | Description
20001 | 0 | There is no nickname for article '%s' in publication '%s'.
20002 | 0 | The filter '%s' already exists for article '%s' in publication '%s'.
20003 | 0 | Could not generate nickname for '%s'.
20007 | 16 | The system tables for merge replication could not be dropped successfully.
20008 | 16 | The system tables for merge replication could not be created successfully.
20009 | 16 | The article '%s' could not be added to the publication '%s'.
20010 | 16 | The Snapshot Agent corresponding to the publication '%s' could not be dropped.
20011 | 16 | Cannot set incompatible publication properties. The 'allow_anonymous' property of a publication depends on the 'immediate_sync' property.
20012 | 16 | The subscription type '%s' is not allowed on publication '%s'.
20013 | 16 | The publication property '%s' cannot be changed when there are subscriptions on it.
20014 | 16 | Invalid @schema_option value.
20015 | 16 | Could not remove directory '%ls'. Check the security context of xp_cmdshell and close other processes that may be accessing the directory.
20016 | 16 | Invalid @subscription_type value. Valid values are 'pull' or 'anonymous'.
20017 | 16 | The Subscriber side subscription does not exist.
20018 | 16 | The @optional_command_line is too long. Use an agent definition file.
20019 | 16 | The value must be 'name', 'description', 'subset_filterclause', 'column_tracking', 'article_resolver', 'resolver_procedure', 'status', 'pre_creation_command', 'creation_script', or 'schema_option'.
20020 | 16 | The article resolver supplied is either invalid or nonexistent.
20021 | 16 | The subscription could not be found.
20023 | 16 | Invalid @subscriber_type value. Valid options are 'local', 'global', 'anonymous', or 'repub'.
20025 | 16 | The publication name must be unique. The specified publication name '%s' has already been used.
20026 | 16 | The publication '%s' does not exist.
20027 | 16 | The article '%s' does not exist.
20028 | 16 | The Distributor has not been installed correctly. Could not enable database for publishing.
20029 | 16 | The distributor has not been installed correctly. Could not disable database for publishing.
20030 | 16 | The article '%s' already exists in another publication with a different column tracking option.
20031 | 16 | Could not delete the row could because it was not present.
20032 | 16 | '%s' is not defined as a Subscriber for '%s'.
20033 | 16 | Invalid publication type.
20034 | 16 | Publication '%s' does not support '%s' subscriptions.
20036 | 16 | The Distributor has not been installed correctly.
20037 | 16 | The article '%s' already exists in another publication with a different article resolver.
20038 | 16 | The article filter could not be added to the article '%s' in the publication '%s'.
20039 | 16 | The article filter could not be dropped from the article '%s' in the publication '%s'.
20040 | 16 | Could not drop the article(s) from the publication '%s'.
20041 | 16 | Transaction rolled back. Could not execute trigger. Retry your transaction.
20043 | 16 | Could not change the article '%s' because the publication has already been activated.
20044 | 16 | The priority property is invalid for local subscribers.
20045 | 16 | You must supply an article name.
20046 | 16 | The article does not exist.
20047 | 16 | You are not authorized to perform this operation.
20049 | 16 | The priority value should not be larger than 100.0.
20050 | 16 | The retention period must be greater than or equal to %d.
20051 | 16 | The Subscriber is not a registered Subscriber.
20054 | 16 | Current database is not enabled for publishing.
20055 | 16 | Table '%s' cannot be published for merge replication because it has a timestamp column.
20056 | 16 | Table '%s' cannot be republished.
20057 | 16 | The profile name '%s' already exists for the specified agent type.
20058 | 16 | The @agent_type must be 1 (Snapshot), 2 (Logreader), 3 (Distribution), or 4 (Merge)
20059 | 16 | The @profile_type must be 0 (system) or 1 (Custom)
20060 | 16 | Compatibility level can not be smaller than 60.
20061 | 16 | The compatibility level of this database must be set to 70 or higher to be enabled for merge publishing.
20062 | 16 | Update of columns with the rowguidcol property is not allowed.
20064 | 16 | Cannot drop profile. Either it is not defined, or is defined as the default profile.
20065 | 16 | Cannot drop profile, because it is in use.
20066 | 16 | Profile not defined.
20067 | 16 | The parameter name '%s' already exists for the specified profile.
20068 | 16 | The article cannot be created on table '%s' because it has more than %d columns.
20069 | 16 | Cannot validate a merge article that uses looping join filters.
20070 | 16 | Cannot update subscription row.
20071 | 16 | Cannot find the publication named '%s'.
20072 | 16 | Cannot update Subscriber information row.
20073 | 16 | Articles can only be added or changed at the publisher.
20074 | 16 | Only tables can be published for merge replication.
20075 | 16 | The @status parameter value must be 'active', 'inactive', or 'unsynced'.
20076 | 16 | The @sync_mode parameter value must be 'native' or 'character'.
20077 | 16 | Problem encountered generating replica nickname.
20078 | 16 | The @property parameter value must be 'sync_type', 'priority', or 'description'.
20079 | 16 | Invalid @subscription_type parameter value. Valid options are 'push', 'pull', or 'both'.
20080 | 16 | Cannot publish table '%s' for merge replication because it has a computed column.
20081 | 16 | Publication property '%s' cannot be NULL.
20082 | 16 | Column '%s' cannot be published for replication because it is a computed column.
20083 | 16 | Table '%s' cannot be published for replication because it includes a computed column.
20084 | 16 | Publication '%s' cannot be subscribed to by Subscriber database '%s'.
20086 | 16 | Publication '%s' does not support the nosync type because it contains a table that does not have a rowguidcol column.
20087 | 16 | You cannot push an anonymous subscription.
20088 | 16 | You can only assign priorities that are greater than or equal to 0 and less than 100.
20089 | 16 | Could not get license information correctly.
20090 | 16 | Could not get version information correctly.
20091 | 16 | sp_mergesubscription_cleanup is used to clean up push subscriptions. Use sp_dropmergepullsubscription to clean up pull or anonymous subscriptions.
20100 | 16 | Cannot drop Subscriber '%s'. There are existing subscriptions.
20500 | 16 | The updatable Subscriber stored procedure '%s' does not exist in sysobjects.
20501 | 16 | Could not insert into sysarticleupdates using sp_articlecolumn.
20502 | 16 | Invalid '%s' value. Valid values are 'read only' or 'sync tran'.
20503 | 16 | Invalid '%s' value in '%s'. The publication is not enabled for updatable Subscribers.
20505 | 16 | Could not drop synchronous update stored procedure '%s' in '%s'.
20506 | 16 | Source table '%s' not found in '%s'.
20507 | 16 | Table '%s' not found in '%s'.
20508 | 16 | Updatable Subscribers: The text/ntext/image values inserted at Subscriber will be NULL.
20509 | 16 | Updatable Subscribers: The text/ntext/image values cannot be updated at Subscriber.
20510 | 16 | Updatable Subscribers: Cannot update identity columns.
20511 | 16 | Updatable Subscribers: Cannot update timestamp columns.
20512 | 16 | Updatable Subscribers: Rolling back transaction.
20515 | 16 | Updatable Subscribers: Rows do not match between Publisher and Subscriber. Refresh rows at Subscriber.
20516 | 16 | Updatable Subscribers: Replica is not updatable.
20517 | 16 | Updatable Subscribers: Update of replica's primary key is not allowed unless published table has a timestamp column.
20518 | 16 | Updatable Subscribers: INSERT and DELETE operations are not supported unless published table has a timestamp column.
20519 | 16 | Updatable Subscribers: INSERT operations on tables with identity or timestamp columns are not allowed unless a primary key is defined at the Subscriber.
20520 | 16 | Updatable Subscribers: UPDATE operations on tables with identity or timestamp columns are not allowed unless a primary key is defined at the Subscriber.
20521 | 16 | sp_MSmark_proc_norepl: Must be a member of the db_owner or sysadmin roles.
20522 | 16 | sp_MSmark_proc_norepl: Invalid object name '%s'.
20523 | 16 | Could not validate the article '%s'. It is not activated.
20524 | 10 | Table '%s' may be out of synchronization. Rowcount difference (actual: %d, expected: %d). Rowcount method %d used (0 = Full, 1 = Fast).
20525 | 10 | Table '%s' is out of synchronization. Rowcounts (actual: %d, expected %d). Checksum difference (actual: %s, expected: %s).
20526 | 10 | Table '%s' passed rowcount (%d) validation. Rowcount method %d used (0 = Full, 1 = Fast).
20527 | 10 | Table '%s' passed rowcount (%d) and checksum validation. (Note: checksum is not compared for any text and image columns.)
20528 | 10 | Log agent startup message.
20529 | 10 | Starting agent.
20530 | 10 | Run agent.
20531 | 10 | Detect nonlogged agent shutdown.
20532 | 10 | Replication Agent Schedule.
20533 | 10 | Replication agents checkup.
20534 | 10 | Detects replication agents that are not actively logging history.
20535 | 10 | Removes replication agent history from the distribution database.
20536 | 10 | Replication: Agent failure.
20537 | 10 | Replication: Agent retry.
20538 | 10 | Replication: Expired subscription dropped.
20540 | 10 | Replication: Agent success.
20541 | 10 | Removes replicated transactions from the distribution database.
20542 | 10 | Detects and removes expired subscriptions from published databases.
20545 | 10 | Default agent profile.
20546 | 10 | Verbose history agent profile.
20547 | 10 | Agent profile for detailed history logging.
20548 | 10 | Slow link agent profile.
20549 | 10 | Agent profile for low bandwidth connections.
20552 | 10 | Could not clean up the distribution transaction tables.
20553 | 10 | Could not clean up the distribution history tables.
20554 | 10 | The agent is suspect. No response within last %ld minutes.
20555 | 10 | 6.x publication.
20556 | 10 | Detected heartbeats for all running replication agents.
20557 | 10 | Agent shutdown. For more information see the SQL Server Agent job history for job '%s'.
20558 | 10 | Table '%s' passed full rowcount validation after failing the fast check. DBCC UPDATEUSAGE will be automatically initiated.
20559 | 10 | Conditional Fast Rowcount method requested without specifying an expected count. Fast method will be used.
20560 | 10 | An expected checksum value was passed, but checksums will not be compared because rowcount only checking was requested.
20561 | 10 | Generated expected rowcount value of %d for %s.
20562 | 10 | User delete.
20563 | 10 | No longer belongs in this partial.
20564 | 10 | System delete.
20565 | 10 | Replication: Subscriber has failed data validation.
20566 | 10 | Replication: Subscriber has passed data validation.
20567 | 10 | Agent history clean up: %s.
20568 | 10 | Distribution clean up: %s.
20569 | 10 | Expired subscription clean up.
20570 | 10 | Reinitialize subscriptions having data validation failures.
20571 | 10 | Reinitializes all subscriptions that have data validation failures.
20572 | 10 | Subscriber '%s' subscription to article '%s' in publication '%s' has been reinitialized after a validation failure.
20573 | 10 | Replication: Subscription reinitialized after validation failure
20574 | 10 | Subscriber '%s' subscription to article '%s' in publication '%s' failed data validation.
20575 | 10 | Subscriber '%s' subscription to article '%s' in publication '%s' passed data validation.
20576 | 10 | Subscriber '%s' subscription to article '%s' in publication '%s' has been reinitialized after a synchronization failure.
20577 | 10 | No entries were found in msdb..sysreplicationalerts.
20578 | 10 | Replication: Agent custom shutdown
20579 | 10 | Generated expected rowcount value of %d and expected checksum value of %s for %s.


Errors 21000 -21999

Errors 21000 - 21999

Error | Severity | Description
21000 | 16 | Cannot subscribe to an inactive publication.
21001 | 16 | Cannot add a Distribution Agent at the Subscriber for a push subscription.
21002 | 16 | The Distribution Agent for this subscription already exists (%s).
21003 | 16 | Changing publication names is no longer supported.
21004 | 16 | Cannot publish the stored procedure '%s' because it is encrypted.
21005 | 10 | For backward compatibility, sp_addpublisher can be used to add a Distribution Publisher. However, you should use sp_adddistpublisher, which is more flexible.
21006 | 16 | Cannot use sp_addpublisher to add a Distribution Publisher this time. Use sp_adddistpublisher instead.
21007 | 16 | Cannot add the remote Distributor at this time. Make sure that the local server is configured as a Distribution Publisher at the Distributor.
21008 | 16 | Cannot uninstall the Distributor because there are Subscribers defined.
21009 | 16 | The specified filter procedure is already associated with a table.
21010 | 16 | Removed %ld replicated transactions consisting of %ld statements in %ld seconds (%ld rows/sec).
21011 | 16 | Deactivated subscriptions.
21012 | 16 | Cannot change the 'allow_push' property of the publication to false. There are push subscriptions on it.
21013 | 16 | Cannot change the 'allow_pull' property of the publication to false. There are pull subscriptions on it.
21014 | 16 | The @optname parameter value must be 'transactional' or 'merge'.
21015 | 16 | The replication option '%s' has been set to TRUE already.
21016 | 16 | The replication option '%s' has been set to FALSE already.
21018 | 16 | There are too many consecutive snapshot transactions in the distribution database. Rerun the Log Reader Agent or clean up the distribution database.
21021 | 16 | Drop the Distributor first before you uninstall replication.
21022 | 16 | Cannot set incompatible publication properties. The 'immediate_sync' property of a publication is dependent on the 'independent agent' property of a publication.
21023 | 16 | '%s' is no longer supported.
21024 | 16 | The stored procedure '%s' is already published as an incompatible type.
21025 | 16 | The string being encrypted cannot have null characters.
21026 | 16 | Cannot have an anonymous subscription on a publication that does not have an independent agent.
21027 | 16 | '%s' replication stored procedures are not installed. Use sp_replicationoption to install them first.
21028 | 16 | Replication components are not installed on this server. Run SQL Server Setup again and select the option to install replication.
21029 | 16 | Cannot drop a push subscription entry at the subscriber unless @drop_push is 'true'.
21030 | 16 | Names of SQL Server replication agents cannot be changed.
21031 | 16 | 'post_script' is not supported for stored procedure articles.
21032 | 16 | Could not subscribe because non-SQL Server Subscriber '%s' does not support 'sync tran' update mode.
21033 | 16 | Cannot drop server '%s' as Distribution Publisher because there are databases enabled for replication on that server.
21034 | 16 | Rows inserted or updated at the Subscriber are not allowed to be outside the article partition.
21035 | 16 | You have successfully updated the Distribution Publisher property '%s'.
21036 | 16 | Another %s agent for the subscription(s) is running.
21037 | 16 | Invalid working directory '%s'.
21038 | 16 | Windows NT Authentication mode is not supported by the server.
21039 | 16 | The destination owner name is not supported for publications that can be subscribed to by non-SQL Server Subscribers.
21040 | 16 | Publication '%s' does not exist.
21041 | 16 | A remote Distribution Publisher is not allowed on this server version.
21042 | 16 | The Distribution Publisher property, 'distributor_password', has no usage and is not supported for a Distributor running on Windows NT.
21043 | 16 | The Distributor is not installed.
21044 | 16 | Cannot ignore the remote Distributor (@ignore_remote_distributor cannot be 1) when enabling the database for publishing or merge publishing.
21045 | 16 | Cannot uninstall the Distributor because there are databases enabled for publishing or merge publishing.
21046 | 16 | Cannot change Distribution Publisher property 'distribution_db' because the remote Publisher is using the current distribution database.
21047 | 16 | Cannot drop the local Distribution Publisher because there are Subscribers defined.
21048 | 16 | Cannot add login '%s' to the publication access list because it does not have access to the distribution server '%s'.
21049 | 16 | The login '%s' does not have access permission on publication '%s'.
21050 | 16 | Only members of the sysadmin or db_owner roles can perform this operation.
21051 | 16 | Could not subscribe because non-SQL Server Subscriber '%s' does not support custom stored procedures.
21052 | 16 | Transactional publications are supported on Windows NT platforms only.
21053 | 16 | The parameter must be 'description', 'status', 'retention', 'sync_mode', 'allow_push', 'allow_pull', 'allow_anonymous', 'enabled_for_internet', 'centralized_conflicts', or 'snapshot_ready'.
21054 | 16 | Updatable Subscribers: RPC to Publisher failed.
21055 | 15 | Invalid parameter %s specified for %s.
21056 | 16 | The subscription to publication '%s' has expired or does not exist.
21057 | 16 | Anonymous Subscribers are not allowed to have updatable subscriptions.
21058 | 16 | An updatable subscription to publication '%s' on Subscriber '%s' already exists.
21059 | 16 | Cannot reinitialize subscriptions of non-immediate-sync publications.
21060 | 16 | Could not subscribe because non-SQL Server Subscriber '%s' does not support parameterized statements.
21061 | 16 | Invalid article status %d specified when adding article '%s'.
21062 | 16 | The row size of table '%s' exceeds the replication limitation of 6000 bytes.
21063 | 16 | Table '%s' cannot participate in updatable subscriptions because it is published for merge replication.
21070 | 16 | This subscription does not support automatic reinitialization (subscribed with the 'no sync' option). To reinitialize this subscription, you must drop and re-create the subscription.
21071 | 10 | Cannot reinitialize article '%s' in subscription '%s:%s' to publication '%s' (subscribed with the 'no sync' option).
21072 | 16 | The subscription has not been synchronized within the maximum retention period. You must reinitialize the subscription to receive data.
21073 | 16 | The publication specified does not exist.
21074 | 16 | The subscription has expired and must be reinitialized at the Publisher.
21075 | 10 | The initial snapshot for publication '%s' is not yet available.
21076 | 10 | The inital snapshot for article '%s' is not yet available.
21077 | 10 | Deactivated initial snapshot for anonymous publication(s). New subscriptions must wait for the next scheduled snapshot.
21078 | 16 | Table '%s' does not exist in the Subscriber database.
21079 | 16 | The RPC security information for the Publisher is missing or invalid. Use sp_link_publication to set it.
21080 | 16 | The timestamp column has to be in the vertical partition of the article that is enabled for updatable subscriptions.
21081 | 16 | Server setting 'Allow triggers to be fired which fire other triggers (nested triggers)' has to be on at updatable subscribers.
21082 | 16 | Database property 'IsRecursiveTriggersEnabled' has to be true for subscribing databases at updatable subscribers.
21083 | 16 | Database compatibility level at immediate-updating Subscribers cannot be less than 7.0.
21084 | 16 | Publication '%s' does not allow anonymous subscriptions.
21085 | 16 | The retention period must be less than retention period for the distribution database.
21086 | 16 | The retention period for the distribution database must be greater than the retention period of any existing non-merge publications.
21087 | 16 | Anonymous Subscribers or Subscribers at this server are not allowed to create merge publications.
21088 | 10 | The initial snapshot for the publication is not yet available.
21107 | 16 | '%ls' is not a table or view.
21108 | 16 | This edition of SQL Server does not support transactional publications.
21109 | 16 | The parameters @xact_seqno_start and @xact_seqno_end must be identical if @command_id is specified.
21110 | 16 | All parameters must be specified if @command_id is specified.
21111 | 16 | '%s' is not a valid parameter for the Snapshot Agent.
21112 | 16 | '%s' is not a valid parameter for the Log Reader Agent.
21113 | 16 | '%s' is not a valid parameter for the Distribution Agent.
21114 | 16 | '%s' is not a valid parameter for the Merge Agent.
21115 | 16 | '%s' is not a valid value for the '%s' parameter. The value must be a positive integer.
21116 | 16 | '%s' is not a valid value for the '%s' parameter. The value must be 1, 2, or 3.
21117 | 16 | '%s' is not a valid value for the '%s' parameter. The value must be 0, 1, or 2.
21118 | 16 | '%s' is not a valid value for the '%s' parameter. The value must be greater than or equal to 0 and less than or equal to 10000.
21119 | 16 | '%s' is not a valid value for the '%s' parameter. The value must be a non-negative integer.
21120 | 16 | Only members of the sysadmin fixed server role and db_owner fixed database role can drop subscription '%s' to publication '%s'.
21121 | 16 | Only members of the sysadmin fixed server role and '%s' can drop the pull subscription to the publication '%s'.
21122 | 16 | Cannot drop the distribution database '%s' because it is currently in use.
21123 | 16 | The agent profile '%s' could not be found at the Distributor.


Resolving System Error Messages

Identified in the following section are System error messages for which additional information or user action is provided.


Error 103

Severity Level 15
Message Text

The %S_MSG that starts with '%.*ls' is too long. Maximum length is %d.

Explanation

If you enclose a character string in double quotation marks that is more than 128 characters, the application may receive this error. When the QUOTED_IDENTIFIERS option is set ON (SET QUOTED_IDENTIFIERS ON), Microsoft® SQL Server™ expects quoted identifiers to be enclosed in double quotation marks (") and data values to be enclosed in single quotation marks ('). In the case of character parameters of stored procedures, data values enclosed in double quotation marks are accepted by SQL Server if the character string is less than 128 characters. They should be considered syntax errors by SQL Server and generate an error.

You can also see this in ODBC applications using the SQL Server ODBC driver versions 2.50.0121 and later. These drivers set QUOTED_IDENTIFIERS ON when run against a SQL Server version 6.x or later server so that the driver's behavior more closely matches the ANSI and ODBC standards. ODBC applications which use double quotation marks for parameter values may see this behavior after you upgrade to SQL Server 6.x or later and the ODBC 2.50.0121 or later driver.

This behavior has been seen when using stored procedures that contain nested stored procedure execution with parameters delimited in double quotation marks (such as xp_cmdshell) from ODBC applications such as Microsoft Internet Information Service (IIS).

SQL Server does not always flag stored procedure parameters enclosed in double quotation marks if the SET QUOTED_IDENTIFIER ON option has been issued.

Action

Change the procedure call to enclose the parameter values in single quotation marks:

EXECUTE myproc 1, 'abcdefghijklmn'

ODBC applications can also use bound parameter markers instead of providing the values directly using either proprietary Transact-SQL syntax:

SQLExecDirect(hstmt, "EXECUTE myproc ?,?", SQL_NTS);

or, the ODBC standard syntax:

SQLExecDirect(hstmt, "{ call myproc (?,?)}", SQL_NTS);

In these cases, you may be able to work around the problem by placing a SET QUOTED_IDENTIFIER OFF statement at the beginning of the stored procedure. This setting will be in effect only for the scope of the stored procedure and will not affect other statement execution outside of the stored procedure.

CREATE PROCEDURE iisproc
AS
   BEGIN
      DECLARE @stmt varchar(255)
      SET QUOTED_IDENTIFIER OFF
      SELECT @stmt = 'xp_cmdshell "c:\myprog xxxxxxxxxxxxxxxxxxxxxxx"'       EXECUTE (@stmt)
   END

Related Topics

Errors 1 - 999

EXECUTE

SET QUOTED_IDENTIFIER

Using Identifiers


Error 107

Severity Level 15
Message Text
The column prefix '%.*ls' does not match with a table name or alias name used in the query.
Explanation

A column prefix was specified that does not correspond to any table name specified in the query. Match the column prefixes against the table names and alias names in the FROM clause.

One common cause of this error is the use of a table name when an alias name for the table is also supplied. When working with a table alias (a correlation name in ANSI terminology), the syntax checking in Microsoft® SQL Server™ complies with the ANSI specification. ANSI states,

A <table name> ... is exposed ... if and only if the <table reference>
does not specify a <correlation name>.

If an alias has been provided for a table name in the FROM clause, you can only use the alias to qualify columns from the table; the table name cannot be used elsewhere in the statement because they are flagged as syntax errors.

As an example of the difference in behavior, assume this script has been executed:

USE Northwind
GO
SELECT Customers.ContactName
FROM Customers cu
WHERE ContactName LIKE 'C%'
GO
SELECT cu.ContactName
FROM Customers cu
WHERE Customers.ContactName LIKE 'C%'
GO

In both SELECT statements, notice the use of Customers to qualify the column ContactName even though a table alias of cu has been provided to substitute for the table name. Both of these queries return this error message:

Server: Msg 107, Level 16, State 3

The column prefix 'Customers' does not match with a table name or alias name used in the query.

Action

Use the column prefix that corresponds to the exposed name of the table.

Rewrite any queries where column names are qualified with the table name. Use the table alias instead. For example, this SELECT statement is equivalent to the ones above and uses a table alias for column qualification:

USE Northwind
GO
SELECT cu.ContactName
FROM Customers cu
WHERE cu.ContactName LIKE 'C%'
GO

Related Topics

Errors 1 - 999

Query Fundamentals

SELECT

Using Table Aliases


Error 109

Severity Level 15
Message Text

There are more columns in the INSERT statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.

Explanation

This error occurs when more columns are listed in the INSERT statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.

Do not confuse error 109 with operating-system error 109. Operating-system error 109 means that a named pipe connection has been terminated.

Action

Rewrite the INSERT statement, ensuring that the number of columns specified matches the number of columns in the VALUES clause. For example:

INSERT t1 (col1,col2,col3) VALUES (val1,val2,val3)

Related Topics

INSERT


Error 137

Severity Level 15
Message Text

Must declare the variable '%.*ls'.

Explanation

This error occurs when a variable is used in a SQL script without first declaring the variable. This example returns error 137:

SET @mycol = 'ContactName'
SELECT @mycol
GO

One of the more complicated causes of this error includes the use of a variable that was declared outside the EXECUTE statement. For example:

USE Northwind
GO
DECLARE @mycol nvarchar(20)
SET @mycol = 'ContactName'
EXECUTE ('SELECT @mycol FROM Customers')
Action

Verify that any variables used in a SQL script are declared before being used elsewhere in the script.

Rewrite the procedure so that it does not reference variables in the EXECUTE statement that were declared outside of it.

USE Northwind
GO
DECLARE @mycol nvarchar(20)
SET @mycol = 'ContactName'
EXECUTE ('SELECT ' + @mycol + ' FROM Customers')

Related Topics

DECLARE @local_variable

Errors 1 - 999

EXECUTE

SELECT @local_variable

SET @local_variable


Error 156

Severity Level 15
Message Text

Incorrect syntax near the keyword '%.*ls'.

Explanation

This error indicates that the syntax of a Transact-SQL statement is incorrect and that the syntax error was detected near the keyword specified in the error message. The most frequent causes for syntax errors are misspellings of Transact-SQL keywords or operators, and specifying the syntax of a Transact-SQL statement in the wrong order.

One of the more complicated causes for this error may be a compatibility level mismatch for the current database. If the current database has a compatibility level other than 70, Microsoft® SQL Server™ will not recognize any of the keywords that a database with a compatibility level of 70 would recognize.

Action

First, check the Transact-SQL statement syntax near the keyword specified in the error message. Because Transact-SQL language syntax can be very complex, Microsoft SQL Server may report the syntax error later in the Transact-SQL statement syntax than it actually occurred. Second, reexamine the entire Transact-SQL statement that generated the error. Verify the syntax order of the statement.

Ensure that the database does not have a compatibility level of 65 and has a compatibility level of 70.

Related Topics

Backward Compatibility

Errors 1 - 999

Getting Started with Transact-SQL

Reserved Keywords

sp_dbcmptlevel


Error 170

Severity Level 15
Message Text

Line %d: Incorrect syntax near '%.*ls'.

Explanation

This error indicates that the syntax of a Transact-SQL statement is incorrect and that the syntax error was detected near the Transact-SQL syntax element specified in the error message. The most frequent causes for syntax errors are misspellings of Transact-SQL syntax elements or operators, and specifying the syntax of a Transact-SQL statement in the wrong order.

This example produces error 170:

USE Northwind
GO
SELECT &
FROM Categories
ORDER BY CategoryName ASC
Action

First, check the Transact-SQL statement syntax near the syntax element specified in the error message. Because Transact-SQL language syntax can be very complex, Microsoft® SQL Server™ may report the syntax error later in the Transact-SQL statement syntax than it actually occurred. Second, reexamine the entire Transact-SQL statement that generated the error. Verify the syntax order of the statement.

In the above example, changing the ampersand (&) to an asterisk (*) corrects the problem:

USE Northwind
GO
SELECT *
FROM Categories
ORDER BY CategoryName ASC

Related Topics

Errors 1 - 999

Getting Started with Transact-SQL


Error 207

Severity Level 16
Message Text

Invalid column name '%.*ls'.

Explanation

This error occurs when a column referenced in a Transact-SQL statement was not found in any table specified in the FROM clause of the query.

Action

Change the column name to a column name present in one of the tables referenced in the query.

This example returns error 207:

USE Northwind
GO
SELECT CategoryName1
FROM Categories
GO

Evaluate the problem by looking at the full command. For the above example, ensure that the SELECT statement contains the name of a valid column name (CategoryName rather than CategoryName1 as specified above) for the specified table.

USE Northwind
GO
SELECT CategoryName
FROM Categories
GO

Related Topics

Errors 1 - 999

SELECT


Error 208

Severity Level 16
Message Text

Invalid object name '%.*ls'.

Explanation

This error occurs when an object that does not exist is referenced. If the object exists, you might need to include the owner's name in the object name.

If the object is not owned by the user attempting to access it, and it is not owned by the database owner, all references to the object must include the owner's name. For example, if user1 creates a table called test, other users must use the name user1.test when they refer to the table.

The Microsoft® SQL Server™ naming convention for database objects is:

[[[server_name.][database_name].][owner_name].]object_name

The default value for server_name is the current server and the default value for database_name is the current database. The default value for owner_name is the current user. Because owner_name is part of the object name, it is possible for two different users to have tables with the same name in the same database (for example, user1.test and user2.test). For more information about naming conventions, see Transact-SQL Syntax Conventions in SQL Server Books Online for SQL Server 7.0.

This message can also occur when you reference a temporary table that was created with an EXECUTE statement.

Action

The procedure for handling this error depends on what you know about the object indicated in the error message text.

The appropriate permissions must also be set to allow access to an object. If these permissions are not set, error 229 or 230 occurs.

If you do not know who owns the object
  • Execute sp_help with no parameters to display the object owner.

Or

  • Query the Information Schema Views if the object is a table or view to determine the object owner and type. If the object is not a table or a view, query the sysobjects system table to determine the object owner and type.

For example, to determine the owner and type for the object named table_1, execute the following:

USE master
GO
SELECT TABLE_SCHEMA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'table_1'
GO

If no rows are returned from this query, the object either resides in a different database or does not exist.

If you do not own the object in question
  • Include the object owner in the object name. For example:
    SELECT *
FROM user1.table_1

    Although using fully qualified object names eliminates this problem, remember that including the fully qualified object name in an application might complicate the maintenance of the application. For example, if all references to a table include the database name, changing the database name could become difficult.

Or

  • Have the database owner create the object. If the owner creates the object, any user can find the object without specifying the owner. However, temporary tables reside in tempdb and are dropped automatically when the user process or server connection that created them is terminated. Users cannot share temporary tables, even if they are created by the database owner.
If the object does not reside in the database
  • Switch context to the correct database using the USE statement. For example:
    USE database_1

Or

  • Qualify the object name with the database name. For example:
    SELECT *
FROM database_1.user1.table_1

    If you own the object or if the object is owned by the database owner, the owner name is not needed. For example:

    SELECT *
FROM database_1..table_1
If a temporary table created with an EXECUTE statement is referenced
  • If you must use the EXECUTE statement to create a temporary table, create it as a global temporary table using the syntax ##tablename.

Related Topics

CREATE TABLE

Creating and Modifying a Table

Errors 1 - 999

EXECUTE

Information Schema Views

Querying SQL Server System Catalogs

SELECT

sp_help

sysobjects

Transact-SQL Syntax Conventions

USE


Error 229

Severity Level 14
Message Text

%ls permission denied on object '%.*ls', database '%.*ls', owner '%.*ls'.

Explanation

This error occurs when a Microsoft® SQL Server™ user attempts an action, such as executing a stored procedure, or reading or modifying a table, for which the user does not have the appropriate privileges.

Action

Any user (the object owner or system administrator) with full-control over the object in question can grant the necessary privileges to the user requiring access to the object.

Related Topics

Errors 1 - 999

EXECUTE

GRANT

Managing Permissions

SELECT

UPDATE


Error 220

Severity Level 16
Message Text

Arithmetic overflow error for data type %ls, value = %ld.

Explanation

This error occurs when an attempt is made to convert a float or real data type value into a data type that cannot store the result. This error prevents the operation from being completed. For example, if you attempt to place the number 32770 into a variable or column of smallint data type, Microsoft® SQL Server™ returns this error because variables or columns of smallint data type can address integers from 215 (–32,768) through 215 (32,767).

This example raises the error:

DECLARE @myval smallint
SET @myval = 32770
SELECT @myval
GO
Action

For numeric operations, use the ROUND, CAST, and CONVERT functions to manipulate the value in question to fit into the column or variable. Change the data type of the column or variable in question. In the example described above, change the column or variable from smallint to int).

Here is the corrected example:

DECLARE @myval int
SET @myval = 32770
SELECT @myval
GO

Related Topics

CAST and CONVERT

Data Types

Errors 1 - 999

ROUND


Error 245

Severity Level 16
Message Text

Syntax error converting the %ls value '%.*ls' to a column of data type %ls.

Explanation

Microsoft® SQL Server™ returns this message if a character is converted to an integer. For example, these SELECT statements return error 245:

SELECT CONVERT(int, 'A')
-- Or
SELECT CAST('A' AS int)

SQL Server returns this error message because a conversion from a character value to an integer can only be done if it resembles a numeric value. For example, the character 1 (one) can be converted to an integer.

SELECT CONVERT(int, '1')
-- Or
SELECT CAST('1' AS int)
Action

To convert a character to an integer, use the ASCII function, which returns a numerical representation of the character. For example:

SELECT CONVERT(int, ASCII('A'))
-- Or
SELECT CAST(ASCII('A') AS int)

Related Topics

ASCII

Data Types

CAST and CONVERT

Errors 1 - 999


Error 259

Severity Level 16
Message Text

Ad hoc updates to system catalogs are not enabled. The system administrator must reconfigure SQL Server to allow this.

Explanation

This error occurs when Microsoft® SQL Server™ detected an attempt to modify the system catalogs directly while the allow updates system configuration option of sp_configure is set to 0.

The allow updates system configuration option allows the system administrator to change the system catalogs directly.

Warning Severe problems can result from the direct manipulation of the system catalogs. Do not modify the system catalogs unless instructed to do so by your primary support provider.

Action

Before modifying any system catalogs, be sure that you have a valid backup of the database. For more information about backup operations, see Backing Up and Restoring Databases in SQL Server Books Online for SQL Server 7.0.

Warning Incorrect modification of the system catalogs can result in database corruption or data loss.

If possible, restart SQL Server in single-user mode by using the -m flag of the sqlservr application so that inadvertent modifications do not occur. For more information, see sqlservr Application in SQL Server Books Online for SQL Server 7.0.

To modify system catalogs, use the osql utility to alter the allow updates system configuration setting.

Note Only the system administrator can alter the value for the allow updates system configuration setting.

Related Topics

allow updates Option

Backing Up and Restoring Databases

Errors 1 - 999

osql Utility

RECONFIGURE

Reporting Errors to Your Primary Support Provider

Setting Configuration Options

sp_configure

SQL Server Startup Options


Error 266

Severity Level 16
Message Text

Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing. Previous count = %ld, current count = %ld.

Explanation

If a stored procedure exits with the @@TRANCOUNT value that is not the same as when the stored procedure was entered, Microsoft® SQL Server™ returns error 266.

Note This error can be ignored because it only sends a message to the client and does not affect execution.

This example reproduces the problem:

CREATE PROCEDURE test
AS
SELECT @@TRANCOUNT
ROLLBACK TRANSACTION
SELECT @@TRANCOUNT
GO
BEGIN TRANSACTION
EXECUTE test
GO

Because @@TRANCOUNT is not the same in both SELECT statements, error 266 is generated on return from the stored procedure.

This is expected behavior, but it does not mean that transactions cannot be started, completed, or terminated in a stored procedure. Instead, care must be taken so that the @@TRANSACTION function matches on both entry and exit of the stored procedure. For more information, see ROLLBACK TRANSACTION in SQL Server Books Online for SQL Server 7.0.

This problem is more likely to occur when writing nested stored procedures.

Action

There is solution so that the stored procedure works without the error. The following is a list of solutions, with sample code for each:

  1. Perform final COMMIT TRANSACTION or ROLLBACK TRANSACTION statements from the same stored procedure nesting level where the transaction began, as shown by the following examples:
    -- Example 1.a
CREATE PROCEDURE test1a
AS
SELECT @@TRANCOUNT
GO
BEGIN TRANSACTION
EXECUTE test1a
ROLLBACK TRANSACTION
GO
-- Example 1.b
CREATE PROCEDURE test1c
AS
SELECT @@TRANCOUNT
GO
CREATE PROCEDURE test1b
AS
BEGIN TRANSACTION
EXEC test1c
COMMIT TRANSACTION
GO
EXECUTE test1b
GO
  2. If nested transactions are used in a stored procedure, perform matching commits.

    Note The transaction is not committed until @@TRANCOUNT is equal to 0 (zero).

    -- Example 2
CREATE PROCEDURE test2b
AS
SELECT @@TRANCOUNT
BEGIN TRANSACTION
SELECT @@TRANCOUNT
COMMIT TRANSACTION
SELECT @@TRANCOUNT
GO
CREATE PROCEDURE test2a
AS
BEGIN TRANSACTION
EXECUTE test2b
COMMIT TRANSACTION
GO
EXECUTE test2a
GO
  3. If a rollback is needed and the stored procedure nesting level is different than where the transaction began, use RAISERROR, with a valid user-defined error, and check the @@ERROR function after the EXECUTE statement.
    -- Example 3
USE master
EXECUTE sp_addmessage 50001, 16, 'Rollback of transaction in test3'
GO
CREATE PROCEDURE test3
AS
RAISERROR (50001,16,1)
GO
BEGIN TRANSACTION
EXEC test3
    IF @@error <> 50001
        BEGIN
            PRINT 'Commit'
            COMMIT TRANSACTION
        END
    ELSE
        BEGIN
            PRINT 'Rollback'
            ROLLBACK TRANSACTION
        END
GO
  4. The exception to this rule is that if a trigger performs a rollback, @@TRANCOUNT need not match its starting value, because the batch is terminated. However, a stored procedure called by a trigger may cause the problem if it terminated the transaction.
    -- Example 4
CREATE TABLE x (col1 int)
GO
CREATE TRIGGER xins
    ON x
    FOR INSERT AS
        ROLLBACK TRANSACTION
GO
CREATE PROCEDURE sp_xinsert
AS
    SELECT @@TRANCOUNT
    INSERT x (col1) VALUES (1)
    SELECT @@TRANCOUNT
GO
BEGIN TRANSACTION
EXECUTE sp_xinsert
    IF @@error <> 0
        BEGIN
            PRINT 'Commit'
            COMMIT TRANSACTION
        END
    ELSE
        BEGIN
            PRINT 'Rollback'
            ROLLBACK TRANSACTION
        END
GO
SELECT *
FROM x

Related Topics

@@ERROR

@@TRANCOUNT

BEGIN TRANSACTION

COMMIT TRANSACTION

Errors 1 - 999

EXECUTE

ROLLBACK TRANSACTION

Transactions


Error 268

Severity Level 16
Message Text

Cannot run SELECT INTO in this database. The database owner must run sp_dboption to enable this option.

Explanation

This error occurs when an attempt to use the SELECT INTO statement has not been permitted because the select into/bulkcopy database option is not enabled for this database. The database owner must turn on the select into/bulkcopy database option before the SELECT INTO statement can be completed successfully.

This error can also be triggered by stored procedures.

Caution Enabling the select into/bulkcopy database option permits nonlogged operations to take place. Have a specific backup strategy in place to ensure data integrity after nonlogged operations have been performed. A transaction log cannot be backed up after a nonlogged operation. Use the BACKUP DATABASE statement after nonlogged operations have been performed.

Action

The database owner or system administrator must use the sp_dboption system stored procedure to enable the select into/bulkcopy database option. For example, for the pubs database, you would use the osql command prompt utility to perform the following steps:

  1. Switch to the master database and set the database option for the Northwind database. Type:
    USE master
GO
sp_dboption Northwind, 'select into/bulkcopy', true
GO
USE Northwind
GO
CHECKPOINT
GO
  2. Verify that the change has taken place correctly. Execute the sp_helpdb system stored procedure on Northwind. The status result column should show the select into/bulkcopy database option as enabled. Type:
    sp_helpdb Northwind
GO

You may want to review information about the bcp Utility and SELECT INTO statement. For more information, see the SELECT and bcp Utility topics in SQL Server Books Online for SQL Server 7.0. In some cases, bcp is a logged operation that can affect your backup strategy and transaction log backup frequency.

Related Topics

Backing Up and Restoring Databases

BACKUP

Errors 1 - 999

osql Utility

Setting Database Options

sp_dboption

sp_help

sp_helpdb


Error 511

Severity Level 16
Message Text

Cannot create a row of size %d which is greater than the allowable maximum of %d.

Explanation

This error occurs when you attempt to insert a row that is larger than the maximum defined for that table. This error occurs if the row you attempt to insert into a table is too big to fit into a data page.

In Microsoft® SQL Server™, the maximum allowable size of a row in a table is 8060 bytes. A row cannot be split across data pages. A data page is 8 KB in size and consists of the data row and some internal data structures.

Action

Change the data being inserted so it does not exceed the maximum number of bytes (8060) that can be stored in a single row.

Related Topics

Adding Rows with INSERT

CREATE TABLE

INSERT

Maximum Capacity Specifications


Error 515

Severity Level 16
Message Text

Cannot insert the value NULL into column '%.*ls', table '%.*ls'; column does not allow nulls. %ls fails.

Explanation

This error occurs at run time when an attempt is made to use a null value while inserting or updating a column that does not allow null values.

Note This message differs from the following message, which indicates that the attempt has been detected at compile time

error 233: The column '%.*ls' in table '%.*ls' cannot be null.

This error can also occur if the table that is the target of an INSERT or UPDATE statement in a stored procedure or trigger is being dropped and re-created, and one or more of the table column definition(s) have changed from NULL to NOT NULL.

Action

If this error occurs when you are running an UPDATE or INSERT statement, verify that the data inserted or updated matches the column definition for the affected table.

Inserting or updating a column does not allow null values.

Note In a direct UPDATE or INSERT by value, you will get compile error 233 instead of error 515. Usually 515 errors occur in an INSERT/SELECT or an UPDATE statement that uses data in another table.

If this error occurs when a stored procedure or trigger references a table that has been dropped and re-created with different nullability, drop and re-create the affected stored procedure or trigger.

If you are unable to resolve the problem, contact your primary support provider for assistance.

Related Topics

ALTER PROCEDURE

ALTER TABLE

ALTER TRIGGER

CREATE PROCEDURE

CREATE TABLE

CREATE TRIGGER

DROP PROCEDURE

DROP TRIGGER

Errors 1 - 999

INSERT

Reporting Errors to Your Primary Support Provider

SELECT

UPDATE


Error 544

Severity Level 16
Message Text

Cannot insert explicit value for identity column in table '%.*ls' when IDENTITY_INSERT is set to OFF.

Explanation

This error occurs when you have attempted to insert a row that contains a specific identity value into a table that contains an identity column. However, SET IDENTITY_INSERT is not enabled for the specified table.

Action

To insert a specific identity row successfully into a table containing an identity column, you must enable SET IDENTITY_INSERT. The following example inserts identity row 2, where iID is defined as the identity column.

USE pubs
GO
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
      WHERE TABLE_NAME = 'tblTest')
   DROP TABLE tblTest
GO
CREATE TABLE tblTest
( iID   int IDENTITY(1, 1),
  strData nvarchar(15)
)
GO
INSERT INTO tblTest (strData) VALUES (N'Leverling')
INSERT INTO tblTest (strData) VALUES (N'Davolio')
GO
SET IDENTITY_INSERT tblTest ON
GO

-- Insert the specified identity row using a column list.
INSERT INTO tblTest (iID, strData) VALUES (5, N'Callahan')
GO
-- Display the rows in tblTest to see identity values.

SELECT *
FROM tblTest

-- Disable IDENTITY_INSERT.
SET IDENTITY_INSERT tblTest OFF
GO

Related Topics

ALTER TABLE

CREATE TABLE

Errors 1 - 999

SET IDENTITY_INSERT


Error 601

Severity Level 12
Message Text

Could not continue scan with NOLOCK due to data movement.

Explanation

When scanning with the NOLOCK locking hint or with the transaction isolation level set to READ UNCOMMITTED, it is possible for the page at the current position of the scan to be deleted. When this happens, Microsoft® SQL Server™ is not able to continue the scan.

Action

This error aborts the query. Either resubmit the query or remove the NOLOCK locking hint.

Related Topics

Locking Hints

SELECT

SET TRANSACTION ISOLATION LEVEL


Error 602

Severity Level 21
Message Text

Could not find row in sysindexes for database ID %d, object ID %ld, index ID %d. Run DBCC CHECKTABLE on sysindexes.

Explanation

This error occurs when Microsoft® SQL Server™ cannot find a row in the sysindexes table for a needed table or index (for example, when executing a stored procedure that references a table that has been dropped).

Action

If the error occurs because a stored procedure references a dropped table, drop and re-create the stored procedure. This error may also occur in conjunction with other error messages that better point to the root cause of the problem. Execute DBCC CHECKTABLE on sysindexes; also execute DBCC CHECKDB.

If the problem persists, contact your primary support provider. Have the output from the DBCC CHECKDB statement available for review.

Related Topics

ALTER PROCEDURE

CREATE PROCEDURE

DBCC CHECKDB

DBCC CHECKTABLE

DROP PROCEDURE

Errors 1 - 999

Reporting Errors to Your Primary Support Provider

sysindexes


Error 605

Severity Level 21
Message Text

Attempt to fetch logical page %S_PGID in database '%.*ls' belongs to object '%.*ls', not to object '%.*ls'.

Explanation

This fatal error occurs when Microsoft® SQL Server™ detects database corruption. The second object specified in the text not to object '%.*ls' is probably corrupt. Because this error can mask the existence of other errors, execute DBCC CHECKDB to determine the extent of the damage. If DBCC CHECKDB does not report additional errors, the first object mentioned is not corrupt.

SQL Server detects database corruption when it traverses the pages of an object and finds a page in the chain whose object ID does not match that of the object being accessed. There is probably a damaged page chain, a corrupt Index Allocation Map (IAM), or an invalid entry in the sysobjects system table for that object. A clustered table has one doubly-linked page chain for the table data as well as one for each index level. A nonclustered index has a page chain for each level of the index. Pages in a heap are not linked. The IAM is used to find the pages of a heap.

Although error 605 usually displays two object names, other variations can occur:

  • If instead of an object name the error displays a number greater than 0, it means that an attempt was made to reference an object ID that does not exist in a system table for that object.

  • If the error reports the first object ID as 0, an unallocated page was probably encountered. (There is no object ID equal to 0.)

  • If the error states that a page belongs to object ALLOCATION, some of the allocation structures used by the database might be corrupted.

Usually this error occurs after the corruption has been written to the database on disk, but it can also occur entirely in cache without the damage ever being written to disk. This is known as a transient 605 error and is not associated with data corruption. If error 605 occurs during data access, but subsequent DBCC CHECKDB statements complete without error, the 605 error was probably transient. Transient 605 errors can be caused by the operating system prematurely notifying SQL Server that an I/O operation has completed; the error message is displayed even though no actual data corruption exists.

Nontransient 605 errors are often caused by hardware or disk device driver failure.

Action

Execute DBCC CHECKTABLE on the second object specified in the error message. To determine the full extent of the corruption, execute DBCC CHECKDB as soon as possible. Also check the error log for other errors, which often accompany a 605 error.

If the 605 error is not transient, the problem is severe and you must run DBCC CHECKDB with one of the repair clauses. If the error involves an index page, use the REPAIR_REBUILD clause. If the error involves a data page, it may be necessary to use the REPAIR_ALLOW_DATA_LOSS clause. In the likely event that you cannot allow the loss of data, you will need to restore from a known clean backup. If the problem persists, contact your primary support provider. Have the output from DBCC CHECKDB available for review.

Important If executing DBCC CHECKDB with one of the repair clauses does not correct the index problem or if you are unsure what effect DBCC CHECKDB with a repair clause has on your data, contact your primary support provider.

In addition, run hardware diagnostics and correct any problems. You might find it beneficial to perform a completely new setup on the computer, including reformatting the disk drives and reinstalling the operating system. This eliminates the possibility that a .dll or .exe program is corrupted. You can also examine your operating-system error log to see if the error occurred as the result of hardware failure.

Finally, be sure that your system does not have write caching enabled on the disk controller. If you suspect this to be the problem, contact your hardware vendor.

Additional Information

DBCC CHECKDB offers the REPAIR_REBUILD and REPAIR_ALLOW_DATA_LOSS clauses. The REPAIR_REBUILD clause rebuilds corrupt indexes and the REPAIR_ALLOW_DATA_LOSS clause fixes allocation problems. Sometimes, deleting pages is the only way to fix allocation problems. Typically, these pages contain data that was already deleted, but the pages may contain valid data. Therefore, deleting pages is a more risky option than using DBCC CHECKDB with a repair clause. Using DBCC CHECKDB with a repair clause fixes database corruption when a database backup is not available.

If your database is a data warehouse, you may be able to continue operating without the lost data for some time before reloading the missing data. In these cases, use DBCC CHECKDB with the REPAIR_ALLOW_DATA_LOSS clause to fix the damaged database.

You can prevent problems by following these guidelines:

  1. Run SQL Server only on hardware and controllers that are certified for your operating system.

  2. Perform regular backups in conjunction with DBCC CHECKDB statements. DBCC CHECKDB performs all checks that DBCC NEWALLOC and DBCC CHECKALLOC previously did and DBCC CHECKDB is faster. This is the only way to be confident of the state of the database at the time of the backup.

  3. If the data is critical, back up the transaction log frequently. This makes it possible to reduce your window of vulnerability, even in the event of a catastrophic hardware problem, to an hour or less.

  4. In the most critical situations, use a standby server and a continually running batch job to take transaction backups off of the primary computer and continually restore them on the standby computer.

  5. If you have persistent data corruption problems, try to swap the computer, the controllers, and the disk device drivers for components of a different type. This makes it easier to determine whether the problem is platform-specific.

Related Topics

Backing Up and Restoring Databases

BACKUP

Errors 1 - 999

Managing Space Used by Objects

Reporting Errors to Your Primary Support Provider

Using Standby Servers


Error 624

Severity Level 21
Message Text

Could not retrieve row from page by RID because the requested RID has a higher number than the last RID on the page. %S_RID.%S_PAGE, Dbid %d

Explanation

This error occurs when an attempt to retrieve a row from a data page by specifying the row ID (RID) failed because the requested RID was a higher number than the last RID on the page. This can happen during normal processing, if the leaf page of a corrupt nonclustered index points to an incorrect or nonexistent RID on a data page.

If the error occurs on a system table during a read-only operation while other users are updating system tables (executing DDL), it is probably a transient 624 error (rather than a corrupted index). To confirm that there is no corruption, execute DBCC CHECKTABLE without a repair clause.

Action

The recovery procedure depends on when the error occurred. If problems persist, the following procedures might not be sufficient to clean up the index corruption. In this case, contact your primary support provider. Have the output from either DBCC CHECKTABLE (if investigating possible system table corruption) or DBCC CHECKDB available for review.

If the error occurred during normal processing

Execute DBCC CHECKTABLE with the REPAIR_REBUILD clause. If executing DBCC CHECKTABLE with the REPAIR_REBUILD clause does not correct the problem, drop and re-create the affected index or indexes.

Important If executing DBCC CHECKDB with the REPAIR_REBUILD clause does not correct the index problem or if you are unsure what effect DBCC CHECKDB with the REPAIR_REBUILD clause has on your data, contact your primary support provider.

Index unknown, query known

The fastest way to resolve this problem is to execute DBCC CHECKDB with the REPAIR_REBUILD clause. This fixes any index corruption in the entire database. If the database is so large that you do not want to run DBCC CHECKDB, use these instructions to locate the specific index to drop and re-create.

If you do not know which index is causing the problem but you do know which query encounters the problem, follow the instructions below. If you do not know the index or the query, follow the instructions under the next section, "Index and query both unknown."

  1. Determine which index should be dropped by reading the showplan output for the query that encounters the error. If you SET SHOWPLAN_TEXT to ON, SET NOEXEC to ON, and then run the query in question, the output indicates which nonclustered index the query is using to access the table in question.

    For example:

    USE pubs
GO
SET SHOWPLAN_TEXT ON
GO
SET NOEXEC ON
GO
SELECT title
FROM titles
WHERE title > 'Cooking'
GO

Here is the result set:

StmtText
----------------
SET NOEXEC ON

(1 row(s) affected)

StmtText
-------------------------------------------------------
SELECT title
FROM titles
WHERE title > 'Cooking'

(1 row(s) affected)

StmtText
---------------------------------------------------------------------
  |--Index Seek(pubs..titles.titleind, SEEK:(titles.title > @1) ORDERED)

(1 row(s) affected)
  2. SET NOEXEC to OFF and SET SHOWPLAN_TEXT TO OFF again:
    SET NOEXEC OFF
GO
SET SHOWPLAN_TEXT OFF
GO
  3. Drop and re-create the index identified in Step 1 (in this example, titleind).
Index and query both unknown

If you do not know the index or the query, rebuild all nonclustered indexes on the table as follows:

  1. Look at the output you created with DBCC CHECKDB when you obtained the table name:
    • If the object ID is less than 100, you cannot drop and re-create the indexes. Do not continue with Steps 2 or 3. You must restore the database from a known clean backup.

    • If the object ID is 100 or greater, continue with Step 2.
  2. Use sp_helpindex to list all indexes on the table, and then rebuild all the nonclustered indexes using one of the following methods:
    • Drop and re-create each nonclustered index on the table.

    • If the table has a clustered index, drop and re-create it. This causes all nonclustered indexes to be rebuilt automatically. If your table is large, you might not have the space to do this. Generally, 1.2 times of the size of the table must be available.
  3. After the appropriate index has been re-created, run DBCC CHECKTABLE on the table to confirm that the problem has been resolved.

Related Topics

DBCC CHECKDB

DBCC CHECKTABLE

Errors 1 - 999

Reporting Errors to Your Primary Support Provider

Resetting the Suspect Status

SET NOEXEC

SET SHOWPLAN_TEXT

sp_helpindex


Error 625

Severity Level 21
Message Text

Could not retrieve row from logical page %S_PGID by RID because the entry in the offset table (%d) for that RID (%d) is less than or equal to 0.

Explanation

This error occurs when an object to which this row belongs is corrupt. The corruption was detected during the reading of a specific row from that logical page. This corruption can occur as a result of:

  • Hardware problems, especially problems with the hard drive, controller or hardware write caching.

  • Other corruption in the database.
Action

Execute DBCC CHECKDB to determine the full extent of the corruption. Also check the error log for other errors such as 25xx messages, which often accompany this error.

If DBCC CHECKDB issues other corruption messages, resolve those messages first; that may take care of this error. Execute DBCC CHECKDB with the REPAIR_REBUILD clause to repair the damage.

Important If executing DBCC CHECKDB with the REPAIR_REBUILD clause does not correct the index problem or if you are unsure what effect DBCC CHECKDB with the REPAIR_REBUILD clause has on your data, contact your primary support provider.

If executing DBCC CHECKDB with the REPAIR_REBUILD clause does not resolve all corruption problems, determine which table is corrupt by examining the page in the error message. If the page is associated with an index, you may be able to resolve the problem by dropping and then re-creating the index. If the page is a data page and a clean current backup is available, restore the database from the backup.

If no backup is available, select the table into another table or bulk copy data out of the table, drop the table, re-create it, and then select data back in to the table.

If you suspect a hardware problem, run hardware diagnostics and correct any problems. You might find it beneficial to perform a completely new setup, including reformatting the disk drives and reinstalling the operating system. This eliminates the possibility that a .DLL or .EXE program is corrupted. Also examine the Microsoft® Windows NT™ application log to see if the error occurred as the result of hardware failure.

Finally, be sure that your system does not have write caching enabled on the disk controller. If you suspect this to be the problem, contact your hardware vendor.

Related Topics

BACKUP

DBCC CHECKDB

Errors 1 - 999


Error 644

Severity Level 21
Message Text

Could not find the index entry for RID '%.*hs' in index page %S_PGID, index ID %d, database '%.*ls'.

Explanation

This error occurs when the nonclustered index indicated by the index ID is corrupt. The corruption is detected when a process tries to delete a nonexistent row.

Action

Execute DBCC CHECKDB without a repair clause to determine the extent of the damage. Then, execute DBCC CHECKDB with REPAIR_REBUILD clause to correct the damage. If problems persist, either drop and re-create the index (as shown below) or contact your primary support provider.

Important If executing DBCC CHECKDB with the REPAIR_REBUILD clause does not correct the index problem or if you are unsure what effect DBCC CHECKDB with the REPAIR_REBUILD clause has on your data, contact your primary support provider.

To drop and re-create the index:

  1. Record the value of index page and index ID specified in the error text.

  2. Identify which table and index correspond to the index page number.

  3. Note the object ID.

    If the object with the error is a system table (the object ID is less than 100), you cannot drop the index. Execute DBCC CHECKDB with the REPAIR_REBUILD clause or restore the database from a known clean backup.

  4. If the object ID is greater than 100, drop and re-create the index using the table name and index name obtained in Step 1. In most cases, this will clear the corruption.

  5. Execute DBCC CHECKDB with the REPAIR_REBUILD clause on the affected database to verify that all problems have been resolved.

If problems persist, this procedure might not be sufficient to clean up the index corruption. In this case, contact your primary support provider. Have the output from DBCC CHECKDB available for review.

Related Topics

CREATE INDEX

DBCC CHECKDB

DROP INDEX

Errors 1 - 999

Reporting Errors to Your Primary Support Provider


Error 701

Severity Level 19
Message Text

There is insufficient system memory to run this query.

Explanation

The memory requirements for the set of tasks Microsoft® SQL Server™ is attempting to perform exceeds the amount of available memory. Either increase the amount of server memory or reduce the server workload.

Action

To decrease the server workload, reduce the number of users currently using SQL Server. To prevent additional users from logging in to SQL Server, pause the server. For more information, see Pausing and Resuming SQL Server in SQL Server Books Online for SQL Server 7.0.

To increase server memory:

  1. Check the settings for both min server memory (MB) and max server memory (MB).

    If max server memory (MB) is a value close to the value of min server memory (MB), then increase the max server memory (MB) value.

  2. Check the size of the virtual memory paging file.

    If possible, increase the size of the file.

  3. Shut down any other applications running, if applicable, on the server.

  4. View the current memory usage information in Windows NT Performance Monitor.

    To view current memory usage information in preparation for tuning memory configuration, use the Total Server Memory (KB) Performance Monitor Counter of the SQLServer:General Statistics object.

  5. Add additional memory to the server.

Related Topics

Errors 1 - 999

Programming Stored Procedures

Server Memory Options

SQL Server: General Statistics Object


Error 813

Severity Level 20
Message Text

Logical page %S_PGID in database ID %d is already hashed.

Explanation

This error occurs when Microsoft® SQL Server™ attempts to hash logical page %S_PGID of database ID%d and the page is already in the SQL Server hash table.

This error usually occurs as a side effect of other data corruption that can usually be detected by executing DBCC CHECKDB without a repair clause.

Action

Review the SQL Server error log, and then execute DBCC CHECKDB with the appropriate repair clause on the database. If the error involves an index page, use the REPAIR_REBUILD clause. If the error involves a data page, it may be necessary to use the REPAIR_ALLOW_DATA_LOSS clause. In the likely event that you cannot allow the loss of data, you will need to restore from a known clean backup. If the problem persists, contact your primary support provider. Have the output from DBCC CHECKDB available for review.

Important If executing DBCC CHECKDB with one of the repair clauses does not correct the index problem or if you are unsure what effect DBCC CHECKDB with a repair clause has on your data, contact your primary support provider.

Verify with your hardware vendor that the disk subsystem being used by SQL Server is at the currently supported and recommended firmware and hardware level.

If DBCC CHECKDB finds no errors, or if errors are found and corrected so that subsequent DBCC statements indicate no errors, but this error reoccurs, contact your primary support provider. Have the SQL Server error logs and the output from DBCC CHECKDB and sp_configure, available for review.

Related Topics

DBCC CHECKALLOC

DBCC CHECKDB

Errors 1 - 999

Reporting Errors to Your Primary Support Provider

Setting Configuration Options

sp_configure


Error 822

Severity Level 21
Message Text

Could not start I/O for request %S_BLKIOPTR.

Explanation

Microsoft® SQL Server™ encountered an error while attempting to initiate a read or write request. This error can occur for any of the following reasons:

  • A database file is off-line.

  • A database file has been removed or renamed.

  • A database file is inaccessible for another reason (such as insufficient permissions).

The parameter in the error message refers to an internal structure and does not help determine which database file is involved. However, other error messages appearing in the error log just before error 822 usually indicate the file involved.

Action

Examine the availability and condition of the file involved using your standard operating-system procedures, and be sure the file is accessible.

Because error 822 marks the database as suspect, SQL Server cannot recover the database upon restarting. If you know that the database was marked suspect because the file was unavailable, you can reset the status of the database to allow recovery to continue.

Caution Do not use these procedures if there are other errors in the error log, near the error 822 message, that suggest that the database might have been marked suspect for some other reason.

Reset the suspect status by executing sp_resetstatus. This is the safest method. After you execute sp_resetstatus, restart SQL Server.

Here are two examples of error 822 and the associated messages from the log. Examining the error messages that occurred just before error 822 usually helps determine the type of problem.

Device missing

In this example, the device C:\Mssql7\data\mydb_data.mdf did not exist when SQL Server started, causing access to the device to fail:

kernel   udopen: Operating system error 2(The system cannot find the file specified.) during the creation/opening of physical device C:\MSSQL7\data\mydb_Data.MDF.
kernel   FCB::Open failed: Could not open device C:\MSSQL7\data\mydb_Data.MDF for virtual device number (VDN) 1.
spid9    Device activation error. The physical file name 'C:\MSSQL7\data\mydb_Data.MDF' may be incorrect.

To correct an error like this, be sure that the virtual device appearing in the error message exists, and correct whatever error prevented SQL Server from finding it. For example, it might have been renamed or moved while SQL Server was not running.

If the virtual device no longer exists, you must restore from known clean backups. Merely creating an empty device with the correct name will not solve this problem.

Permission problems

Permission problems can occur if the device is on an NTFS partition.

In this example, the permissions on C:\Mssql7\Data\Mydb_DATA.Mdf were incorrect, so SQL Server could not access it:

kernel   udopen: Operating system error 2(The system cannot find the file specified.) during the creation/opening of physical device C:\MSSQL7\data\mydb_Data.MDF.
kernel: dopen: open "c:\mssql7\data\mydb_data.mdf", Permission denied
kernel   FCB::Open failed: Could not open device C:\MSSQL7\data\mydb_Data.MDF for virtual device number (VDN) 1.
spid9    Device activation error. The physical file name 'C:\MSSQL7\data\mydb_Data.MDF' may be incorrect.

To correct an error like this, change the object ownership for the device to Administrator, and be sure that the account that SQL Server was started under has read and write permissions on the object.

Related Topics

BEGIN TRANSACTION

CHECKPOINT

Errors 1 - 999

RECONFIGURE

Resetting the Suspect Status

Setting Configuration Options

Setting Database Options

SHUTDOWN

sp_configure

sp_dboption

UPDATE


Error 823

Severity Level 24
Message Text

I/O error %ls detected during %S_MSG of %S_BUF.

Explanation

Microsoft® SQL Server™ encountered an I/O error on a read or write request made to a device. This error usually indicates disk problems. The parameters in the error message refer to internal structures and don't often help determine which device is involved. However, additional kernel messages in the error log, recorded before error 823, should indicate which device is involved.

Action

Check the accessibility and condition of the device in question. After you have identified and corrected the problem, execute DBCC CHECKDB to ensure that no other damage was caused by the bad device. For information about using DBCC CHECKDB, see DBCC CHECKDB in SQL Server Books Online for SQL Server 7.0.

Important If executing DBCC CHECKDB with one of the repair clauses does not correct the index problem or if you are unsure what effect DBCC CHECKDB with a repair clause has on your data, contact your primary support provider.

In addition, run hardware diagnostics and correct any problems.

Related Topics

Errors 1 - 999


Error 844

Severity Level 10
Message Text

Time out occurred while waiting for buffer latch type %d, bp %#x, page %S_PGID, stat %#x, object ID %d:%d:%d, waittime %d. Continuing to wait.

Explanation

When under a heavy stress load or high I/O conditions, your system may produce this message.

Action

This message can usually be ignored; however, if you receive repeated messages where the wait time increases, it may indicate an internal server problem. Contact your system administrator. The system administrator should check the waittype, waittime, lastwaittype, and the waitresource columns of sysprocesses to see what activities each SPID is performing.

Related Topics

Errors 1 - 999

sysprocesses


Error 845

Severity Level 17
Message Text

Time out occurred while waiting for buffer latch type %d for page %S_PGID, database ID %d, object ID %d, index ID %d.

Explanation

When under a heavy stress load or high I/O conditions, your system may produce this message.

Action

This message can usually be ignored; however, if you receive repeated messages where the wait time increases, it may indicate an internal server problem. Contact your system administrator. The system administrator should check the waittype, waittime, lastwaittype, and the waitresource columns of sysprocesses to see what activities each SPIDs is performing.

Related Topics

Errors 1 - 999

sysprocesses


Error 911

Severity Level 16
Message Text

Could not locate entry in sysdatabases for database '%.*ls'. No entry found with that name. Make sure that the name is entered correctly.

Explanation

This error occurs when attempting to change database context (with a USE statement) to a database that does not exist or when the default database established for a login does not exist. In the latter case, the user login then attempts to access the master database.

Action

To obtain a list of databases, execute sp_helpdb or issuing this query:

SELECT name
FROM master..sysdatabases

The list returned will contain the databases that exist on the Microsoft® SQL Server™ installation. Either create a missing database or connect to an existing one. To correct login-level errors, it may be necessary to execute sp_defaultdb.

Related Topics

Errors 1 - 999

sp_defaultdb

sp_helpdb

sysdatabases

USE


Error 913

Severity Level 22
Message Text

Could not find database ID %d. Database may not be activated yet or may be in transition.

Explanation

This error can occur if there is a problem with the view resolution process. During execution of various compiled objects in a database that reference the database dbid (such as stored procedures and views), it is a normal process to resolve the dbid with other structures within the database. When a compiled object is first created, the dbid where the object is located is embedded in the compiled code. For example, when a view is accessed or a stored procedure is executed, the rights to access the view or execute the stored procedure are checked.

Action

If the error occurs when a stored procedure or view is accessed, you may be able to correct the problem by simply dropping and re-creating the database object (stored procedure or view).

If this error continues to occur, contact your primary support provider and have the Microsoft® SQL Server™ error log and any additional information relevant to the circumstances when the error occurred available for review.

Related Topics

CREATE PROCEDURE

CREATE VIEW

DROP PROCEDURE

DROP VIEW

Errors 1 - 999

Reporting Errors to Your Primary Support Provider


Error 924

Severity Level 14
Message Text

Database '%.*ls' is already open and can only have one user at a time.

Explanation

This error occurs when trying to access a database that is already in use by another user or session. Microsoft® SQL Server™ detected an attempt to access a database that is in single-user mode.

Action

Verify that the database in question is actually in single-user mode by executing this query (substitute your database name for <database>).

sp_helpdb <database>
GO

If the database is truly in single-user mode, the status result set column heading will list single user as the access mode.

To see what login is accessing the database, execute sp_who and scan the dbname result set column heading for the specified database.

If single-user mode privilege is a problem, contact your system administrator and ask to have the single-user mode database option set to multiuser. The system administrator can do so by executing sp_dboption from the master database, as shown here:

sp_dboption database, 'single user', false

Related Topics

Errors 1 - 999

Setting Database Options

sp_dboption

sp_helpdb

sp_who


Error 926

Severity Level 14
Message Text

Database '%.*ls' cannot be opened. It has been marked SUSPECT by recovery. See the SQL Server errorlog for more information.

Explanation

This informational message occurs when an attempt to open or use a database that has a sysdatabases.status column value greater than or equal to 256 and less than 1024.

The database is marked as suspect because it failed the recovery process that brings a database to a consistent transactional state during startup or during the RESTORE DATABASE or RESTORE LOG procedures.

Action

Inspect the Microsoft® SQL Server™ error log and determine the cause of the error. If SQL Server has been restarted since the failed recovery, look at previous SQL Server error logs to see the reason why recovery failed. Correct the underlying problem. If you are unable to resolve this problem, contact your primary support provider. Have the SQL Server error log available for review.

Related Topics

Backing Up and Restoring Databases

Errors 1 - 999

Reporting Errors to Your Primary Support Provider

Resetting the Suspect Status

RESTORE

sysdatabases


Error 945

Severity Level 16
Message Text

Database '%.*ls' cannot be opened because some of the files could not be activated.

Explanation

Microsoft® SQL Server™ returns error 945 and does not set the status column of sysdatabases to suspect if SQL Server is unable to complete recovery on a database due to any situation other than the disk being full.

Action

To determine the cause of, and possible solution for the problem, use the appropriate DATABASEPROPERTY property. For example, to determine if the database is offline, use the IsOffline property of DATABASEPROPERTY.

Enabled DATABASEPROPERTY | Error message resolution
IsShutDown** | Fixing the database and log files and restarting the server.
IsEmergencyMode | Explicitly changing the sysdatabases.status bit.
IsInLoad* | Retrying the restore operation, continuing the restore operation if it occupied multiple tapes, or dropping the database and trying again.
IsInRecovery* | Doing nothing, except allowing recovery to continue.
IsInStandby* | Doing nothing. This server is acting as a warm backup or standby server. For more information, see Using Standby Servers in SQL Server Books Online for SQL Server 7.0.
IsOffline** | Executing sp_dboption with a value of false for the offline setting.
IsSuspect | Freeing disk space if the operating system ran out of disk space during recovery. Reset the sysdatabases.status bit, and then restart the server. Contact your primary support provider if none of these options is successful.

* Indicates that these options can be enabled, in any combination, simultaneously.
** Indicates that neither IsOffline nor IsShutDown should be enabled when IsSuspect is enabled.

Related Topics

DATABASEPROPERTY


Error 1002

Severity Level 16
Message Text

Line %d: Specified scale %d is invalid.

Explanation

This error occurs when the scale of a decimal or numeric column does not fall between the allowable minimum and maximum values based on the precision of the column.

Action

Specify the precision with p, which must be between 1 and the maximum precision, and the scale with s, which must be between 0 and p. If you do not specify the precision, Microsoft® SQL Server™ uses a default precision of 18. If you do not specify the scale, SQL Server uses a default scale of 0. For more information, see the decimal and numeric topic and the Precision, Scale, and Length topic in SQL Server Books Online for SQL Server 7.0.


Error 1105

Severity Level 17
Message Text

Could not allocate space for object '%.*ls' in database '%.*ls' because the '%.*ls' filegroup is full.

Explanation

The specified filegroup has run out of free space.

Action

You can:

  • Free disk space on any disk containing a file in the filegroup mentioned in the 1105 error message. Freeing disk space allows the files in the filegroup to grow.

Or

  1. Free disk space on a different disk drive.

  2. Move the data files in the filegroup with an insufficient amount of free disk space to the disk drive in Step 1.

  3. Detach the database by executing sp_detach_db.

  4. Attach the database by executing sp_attach_db, pointing to the moved files.

Or

  • Either add a data file to the specified database by using the ADD FILE clause of the ALTER DATABASE statement, or enlarge the data file by using the MODIFY FILE clause of the ALTER DATABASE statement, specifying the SIZE and MAXSIZE syntax.

Related Topics

ALTER DATABASE

Errors 1000 - 1999

Expanding the Database

Insufficient Disk Space

sp_attach_db

sp_detach_db


Error 1203

Severity Level 20
Message Text

Process ID %d attempting to unlock unowned resource %.*ls.

Explanation

This error occurs when Microsoft® SQL Server™ is engaged in some activity other than normal post-processing cleanup and it finds that a particular page it is attempting to unlock is already unlocked. The underlying cause for this error may be related to structural problems within the affected database. SQL Server manages the acquisition and release of pages to maintain concurrency control in the multiuser environment. This mechanism is maintained through the use of various internal lock structures that identify the page and the type of lock present. Locks are acquired for processing of affected pages and released when the processing is completed.

Action

Execute DBCC CHECKDB against the database in which the object belongs. If DBCC CHECKDB reports no errors, attempt to reestablish the connection and execute the command.

Important If executing DBCC CHECKDB with one of the repair clauses does not correct the index problem or if you are unsure what effect DBCC CHECKDB with a repair clause has on your data, contact your primary support provider.

Related Topics

DBCC CHECKDB

Errors 1000 - 1999

Reporting Errors to Your Primary Support Provider


Error 1204

Severity Level 19
Message Text

SQL Server has run out of LOCKS. Rerun your statement when there are fewer active users, or ask the system administrator to reconfigure SQL Server with more LOCKS.

Explanation

This error occurs when there are not enough system locks to complete the current command.

Action

Either execute the command again, when activity on the server is low, or have the system administrator increase the number of locks by executing sp_configure from the master database.

To view the current configuration:

sp_configure locks
GO

This reports the minimum, maximum, current run, and configuration values. To increase the number of locks, run sp_configure again, specifying the number of locks to be configured. For example, to configure 10,000 locks:

sp_configure locks, 10000
GO
RECONFIGURE WITH OVERRIDE
GO

Stop and restart Microsoft® SQL Server™ so the changes can take effect. Locks are allocated at system startup.

If the number of locks cannot be increased at the current time, and the single action requires more locks than the server is currently configured for, you may be able to reduce the number of locks required for the operation. For example, try the following:

  • For large UPDATE statements, break the updates into smaller units that will affect only a subset of records at a time. For example, you could use the primary key, changing the single UPDATE statement from:
    UPDATE employees
SET salary = salary * 1.05
WHERE employee_id BETWEEN 1000 AND 9999
GO

to several UPDATE statements:

UPDATE employees
SET salary = salary * 1.05
WHERE employee_id BETWEEN 1000 AND 4999
GO
UPDATE employees
SET salary = salary * 1.05
WHERE employee_id BETWEEN 5000 AND 9999
GO
  • For a maintenance type of task or for a global update, consider putting the database into single-user mode (if it is feasible to keep other users out of the database). Single-user mode does not set locks, so you will not run out of locks, and the operation will run somewhat faster (because you save the locking overhead).

  • For a large bulk copy operation, the entire operation is treated as a single transaction. When you use the batch parameter (-b),the bcp utility will treat the operation in small transactions with the number of rows specified. At the end of each small transaction, the system resources held by that transaction are freed, so fewer locks are needed.

Related Topics

bcp Utility

BULK INSERT

Errors 1000 - 1999

Setting Configuration Options

sp_configure

Starting, Pausing, and Stopping SQL Server

UPDATE


Error 1205

Severity Level 13
Message Text

Your transaction (process ID #%d) was deadlocked with another process and has been chosen as the deadlock victim. Rerun your transaction.

Explanation

This error occurs when Microsoft® SQL Server™ encounters a deadlock. A deadlock occurs when two (or more) processes attempt to access a resource that the other process holds a lock on. Because each process has a request for another resource, neither process can be completed. When a deadlock is detected, SQL Server rolls back the command that has the least processing time and returns this error message 1205 to the client application. This error is not "fatal" and may not cause the batch to be terminated.

Action

In some instances, a deadlock condition will cause a DB-Library function (such as dbsqlexec, dbsqlok, dbresults, or dbnextrow) to return FAIL. It is always the responsibility of the program to check the return codes from each DB-Library function. If FAIL is returned by one of these DB-Library functions, the program should cancel the batch and not attempt to continue. In some cases, it is possible to continue execution of subsequent functions in the batch. However, because a deadlock situation occurred and the functions that caused it were rolled back, later functions in the batch will probably fail with a more serious error, such as "object not found."

In other instances, a deadlock condition will not cause a DB-Library function to return FAIL. In these cases, the program must check for error message 1205 in the message handler and use the dbsetuserdata function to communicate this to the application (For more information, see dbsetuserdata in SQL Server Books Online for SQL Server 7.0.) The program must then check for the deadlock indicator after every DB-Library call and should cancel the batch if a deadlock is detected.

Although it may seem unnecessary to cancel a batch after receiving a 1205 deadlock message, it is necessary because the server does not always terminate the batch in a deadlock situation. If the batch is not canceled, any attempt to submit a new batch can result in a DB-Library error 10038 "Results Pending."

You can also use the SET DEADLOCK_PRIORITY statement (LOW or NORMAL). SET DEADLOCK_PRIORITY controls how the session reacts when in a deadlock situation. If set to LOW, the process will be the preferred victim of a deadlock situation. If set to NORMAL, the session will use the default deadlock-handling method.

If a deadlock situation continues, it is often useful to use trace flag 1204 to gather more information. Trace flag 1204 prints out the deadlock chains and victim, as shown in this sample output:

*** Deadlock Detected ***
 ==> Process 7 chosen as deadlock victim
 == Deadlock Detected at: 1998-09-10 16:39:29.17
 == Session participant information:
 SPID: 7 ECID: 0 Statement Type: UPDATE
 Input Buf: update t1 set c1 = c1  where  c1 = 2

 SPID: 8 ECID: 0 Statement Type: UPDATE
 Input Buf: update t1 set c1 = c1  where  c1 = 1

 == Deadlock Lock participant information:
 == Lock: KEY: 2:117575457:1 (010001000000)
 Database: tempdb
 Table: t1
 Index: i1
  - Held by: SPID 7 ECID 0 Mode "S"
  - Requested by: SPID 8 ECID 0 Mode "X"
 == Lock: KEY: 2:117575457:1 (020002000000)
 Database: tempdb
 Table: t1
 Index: i1
  - Held by: SPID 8 ECID 0 Mode "S"
  - Requested by: SPID 7 ECID 0 Mode "X"

This deadlock information can be interpreted as follows:

  • The first section displays the deadlock victim and time of deadlock along with the sessions involved in the deadlock. For each session, the current SPID, statement type, and a portion of the input buffer is displayed.

  • The second section displays details about the locks involved in the deadlock. From the output above, note that the deadlock involves key locks on table t1, index i1. The deadlock output shows which processes own the locks involved in the deadlock and which sessions are waiting for the locks to be granted as well as the associated lock modes.

  • The process that has generated the least amount of log volume will, by default, be chosen as the deadlock victim and be rolled back automatically. To influence which session is rolled back, set the DEADLOCK_PRIORITY for a session.

For more information about deadlocking, see Deadlocking in SQL Server Books Online for SQL Server 7.0.

Related Topics

Errors 1000 - 1999

SET DEADLOCK_PRIORITY

Trace Flags


Error 1505

Severity Level 14
Message Text

CREATE UNIQUE INDEX aborted because a duplicate key was found. Most significant primary key is '%S_KEY'.

Explanation

This error occurs when you attempt to create a unique index and more than one row contains the duplicate value. Microsoft® SQL Server™ has detected a uniqueness violation and cancels the CREATE INDEX operation.

For example, the creation for the index below would be canceled due to the uniqueness violation at row 3. The BUCHANAN STEVEN combination is already located in row 1.

TABLE:     tblTest
Row      strLastName     strFirstName    strCity        strState
1        BUCHANAN        STEVEN          BOISE          ID
2        SUYAMA          MICHAEL         BUTTE          MT
3        BUCHANAN        STEVEN          SEATTLE        WA
4        DAVOLIO         NANCY           SAN FRANCISCO  CA

CREATE UNIQUE NONCLUSTERED INDEX
idxUniqueNames ON
tblText(strLastName, strFirstName)
Action

You must review your index objective. If your index does not need to be unique, remove the UNIQUE keyword and reissue the CREATE INDEX statement. However, if you still want to create a unique index, you must query the table in question and remove the rows in error. For more information about the CREATE INDEX statement, see CREATE INDEX in SQL Server Books Online for SQL Server 7.0.

To find the duplicate rows, issue a GROUP BY statement:

SELECT * FROM tblTest
GROUP BY strLastName, strFirstName

Related Topics

Errors 1000 - 1999

SELECT


Error 1508

Severity Level 14
Message Text

CREATE INDEX aborted because a duplicate row was found. Primary key is '%S_KEY'.

Explanation

This error occurs when you attempt to create a clustered index and a duplicate row is encountered in the table.

The following example produces error 1508 when the index creation process reaches row 3, which is an exact duplicate of row 1:

TABLE:     tblTest
Row      strLastName     strFirstName    strCity        strState
1        BUCHANAN        STEVEN          BOISE          ID
2        SUYAMA          MICHAEL         BUTTE          MT
3        BUCHANAN        STEVEN          BOISE          ID
4        DAVOLIO         NANCY           SAN FRANCISCO  CA

CREATE CLUSTERED INDEX
idxClusteredName ON
tblText(strLastName)
Action

You must decide whether to allow or prevent duplicate rows in the table. To allow duplicate rows, you should add the ALLOW_DUP_ROW keyword to the CREATE INDEX statement. Be cautious when using IGNORE_DUP_ROW, because it physically removes duplicate data from the table. Also note that when creating clustered indexes, the amount of space required can be 120 percent to 150 percent of the original table size. For more information, see CREATE INDEX in SQL Server Books Online for SQL Server 7.0.

The following example creates the clustered index while allowing the duplicate rows to remain in the table:

CREATE CLUSTERED INDEX
idxClusteredName ON
tblText(strLastName)
WITH ALLOW_DUP_ROW

Related Topics

Errors 1000 - 1999

SELECT


Error 1510

Severity Level 17
Message Text

Sort failed. Out of space or locks in database '%.*ls'.

Explanation

This error occurs when you attempt to create an index and there is not enough space in the database to complete the operation or no more locks are currently available.

Creating indexes can require 1.2 times the original table size when building a clustered index (this amount is in addition to the table size-but just during the time that CREATE INDEX is processing). This space must be available in the indicated database or in the segment on which you were attempting to create the index.

Action

When there is not enough space in the database, you may be able to select a specific filegroup on which to place the index. To locate a specific filegroup and to check the size available on the filegroup, execute sp_helpfilegroup:

sp_helpfilegroup 'PRIMARY'

Or use the ALTER DATABASE statement to increase the overall database size. Note that after you increase the size of the database, you may not be allowed to decrease the size. For more information about creating and extending files or filegroups, and altering or moving databases, see ALTER DATABASE in SQL Server Books Online for SQL Server 7.0.

If your database has no more locks available, execute sp_configure to increase the number of locks. This example increases the amount of locks to 10,000:

sp_configure 'locks', 10000
GO
RECONFIGURE
GO

For the configuration option to take effect, stop and restart the Microsoft® SQL Server™ service. For user convenience, you may want to pause the service and allow current user activity to gracefully finish before officially stopping the service. For more information about starting, pausing, and stopping the SQL Server service, see Starting, Pausing, and Stopping SQL Server in SQL Server Books Online for SQL Server 7.0.

Related Topics

CREATE INDEX

Errors 1000 - 1999

Setting Configuration Options

sp_configure

sp_helpfilegroup


Error 1530

Severity Level 16
Message Text

CREATE INDEX with DROP_EXISTING was aborted because a row was out of order. Most significant offending primary key is '%S_KEY'. Explicitly drop and create the index instead.

Explanation

This error occurs when you try to create an index using the DROP_EXISTING clause of the CREATE INDEX statement on a column or columns containing data that is not in sorted order. When this error occurs, no index is created.

The DROP_EXISTING clause speeds creation of an index when the data in the table is already in sorted order. The space required to build a clustered index is less when the DROP_EXISTING clause is used.

The DROP_EXISTING clause speeds index creation only for clustered indexes or unique nonclustered indexes. Creating a nonunique, nonclustered index with the DROP_EXISTING clause may succeed, but there is no improvement in performance.

Action

Use either of these strategies:

  • Execute CREATE INDEX with the DROP_EXISTING clause.

  • Drop and re-create the index without any clauses.

You can also use the SORTED_DATA_REORG clause, which physically reorganizes the data.

Related Topics

CREATE INDEX

Errors 1000 - 1999


Error 1702

Severity Level 16
Message Text

CREATE TABLE failed because column '%.*ls' in table '%.*ls' exceeds the maximum of %d columns.

Explanation

This error occurs when you try to create a table with more than 1,024 columns. The maximum number of definable columns per table is 1,024.

Column names must follow the rules for identifiers. They must be unique within a given table, but you can use the same column name in different tables in the same database.

Action

Reduce the number of columns in the table to 1,024 or less. For more information about creating tables, see CREATE TABLE in SQL Server Books Online for SQL Server 7.0.

Related Topics

Errors 1000 - 1999

Maximum Capacity Specifications

Using Identifiers


Error 1803

Severity Level 17
Message Text

CREATE DATABASE failed. Could not allocate enough disk space for a new database on the named disks. Total space allocated must be at least %d MB to a accommodate copy of the model database.

Explanation

This error occurs when there is not enough space on the device to create the tempdb database.

Action

The procedure for handling this error depends on whether the error occurred on a user database or on tempdb.

If the error occurred on a user database
  • Create the database on a different disk.

Or

  • Delete some files to free space on the disk.
If the error occurred on tempdb

If you moved tempdb from one device back to any default device and you don't have enough space on the device (2 MB), Microsoft® SQL Server™ will attempt to create tempdb on another device. If you do not have a device with at least 2 MB free, SQL Server will not start. Start SQL Server using the -f minimum configuration option.

You can create a new device with at least 2 MB or free at least 2 MB on the device. If you create a new device, make sure it is specified as a default device, as in this example:

sp_diskdefault new_device_name, defaulton

If no default is specified, SQL Server sends an "out of memory" message (you can ignore this message) and then moves tempdb to RAM automatically.

Related Topics

Errors 1000 - 1999

sqlservr Application


Error 1814

Severity Level 10
Message Text

Could not create tempdb. If space is low, extend the amount of space and restart.

Explanation

This error occurs when there is not enough space on the device to create the tempdb database.

Action

You can create a new device with at least 2 MB or free at least 2 MB on the device. If you create a new device, make sure it is specified as a default device, as in the following example:

sp_diskdefault new_device_name, defaulton

If no default device is specified, Microsoft® SQL Server™ sends an "out of memory" message (you can ignore this message) and then moves tempdb to RAM automatically.

Related Topics

Errors 1000 - 1999


Error 1902

Severity Level 16
Message Text

Cannot create more than one clustered index on table '%.*ls'. Drop the existing clustered index '%.*ls' before creating another.

Explanation

This error occurs when a table can have only one clustered index, but it can have many nonclustered indexes. Microsoft® SQL Server™ uses the clustered index to sort rows so that their physical order is the same as their logical (indexed) order. The bottom (leaf level) of a clustered index contains the actual data pages of the table.

In a nonclustered index, the physical order of the rows is not the same as the indexed order. In a nonclustered index, the bottom (leaf level) contains pointers to rows on data pages, which creates an extra level between the index structure and the data itself.

Action

Use the sp_helpindex system stored procedure to examine the existing indexes on the table. If a clustered index already exists, you must drop it before creating another clustered index.

Related Topics

CREATE INDEX

Errors 1000 - 1999

sp_helpindex


Error 1903

Severity Level 16
Message Text

%d is the maximum allowable size of an index. The composite index specified is %d bytes.

Explanation

This error occurs when the sum of the lengths of the columns that make up the composite index exceeds 900 bytes.

A composite index is an index that uses from 2 to 16 columns. For example, the following shows a composite index using objects from the Northwind database:

USE Northwind
GO
CREATE INDEX CompanyNameCity
ON Customers (CompanyName, City)
GO

In this example, CompanyName is defined as nvarchar(40) and City as nvarchar(15). Each character requires 2 bytes of storage, so the total length of this composite index is 110 bytes (2* (40 + 15)). Note that when using varchar columns, the index will assume the maximum length of the varchar column to calculate the length of the composite index.

Action

Examine the lengths of the columns in your composite index and make sure that the total does not exceed 900 bytes. For more information about determining the storage size for different Microsoft® SQL Server™ data types, see the Data Types topic, and for more information about indexes, see the CREATE INDEX and Creating an Index topics in SQL Server Books Online for SQL Server 7.0.

Related Topics

Errors 1000 - 1999


Error 1904

Severity Level 16
Message Text

Cannot specify more than %d column names for index key list. %d specified.

Explanation

This error occurs when more than 16 columns are used to create a composite index. A composite index is an index that uses from 2 to 16 columns.

The following example shows a composite index using objects from the pubs database:

USE pubs
GO
CREATE INDEX idxPubNameCity
ON publishers (pub_name, city)
GO
Action

Modify the CREATE INDEX statement to use no more than 16 columns. For more information, see CREATE INDEX in SQL Server Books Online for SQL Server 7.0.

Related Topics

Creating an Index

Errors 1000 - 1999


Error 1910

Severity Level 16
Message Text

Cannot create more than %d indexes or column statistics on one table.

Explanation

This error occurs when either:

  • A table already has 250 indexes.

Or

  • A table has a large number of indexes, and statistics are either being created or updated. Microsoft® SQL Server™ makes an entry in sysindexes for each set of column-level statistics that are either created or updated, if the base column does not already have an index.

The following example produces this error message by updating statistics on a table with 250 indexes:

USE pubs
GO
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
      WHERE TABLE_NAME = 'TestCols')
   DROP TABLE TestCols
GO
DECLARE @counter int, @stmt varchar(255)
SET @counter = 1
CREATE TABLE TestCols
 (
  c1 int IDENTITY(1, 1),
  c2 char(255)
 )
-- Creating 250 indexes.
WHILE (@counter < 251)
   BEGIN
      IF (@counter = 1)
         CREATE UNIQUE CLUSTERED INDEX Ind1 ON TestCols (c1)
      ELSE
      BEGIN
         SELECT @stmt = 'CREATE INDEX t1Ind' + LTRIM(STR(@counter)) +
            ' ON TestCols (c1)'
         EXEC (@stmt)
      END
      SET @counter = @counter + 1
   END

-- Updating Statistics. Returns error 1910.
UPDATE STATISTICS TestCols (c2) WITH COLUMNS, FULLSCAN
Action

Either:

  • Modify the CREATE INDEX statement to use no more than 250 indexes.

Or

  • Remove any unused, nonclustered indexes to create or update statistics successfully.

For more information, see CREATE INDEX in SQL Server Books Online for SQL Server 7.0.

Related Topics

Errors 1000 - 1999

sysindexes

UPDATE STATISTICS


Error 1916

Severity Level 16
Message Text

CREATE INDEX options %ls and %ls are mutually exclusive.

Explanation

This error occurs when you attempt to create an index with two mutually exclusive CREATE INDEX statement clauses. The index is not created when this error occurs.

This table shows when to use the CREATE INDEX clauses:

Index type | Clause
Unique clustered | IGNORE_DUP_KEY
Nonclustered | None
Unique nonclustered | IGNORE_DUP_KEY

Action

Select the correct clauses for the CREATE INDEX statement.

Related Topics

CREATE INDEX

Creating an Index

Errors 1000 - 1999


Error 2501

Severity Level 16
Message Text

Could not find table named '%.*ls'. Check sysobjects.

Explanation

Usually some form of corruption in the database causes this error. This often happens when a table is being dropped and a serious error occurs that causes the drop to fail.

Action

Executing DBCC CHECKDB and DBCC CHECKCATALOG can indicate other problems in the database. Restore your database from backup or contact your primary support provider for assistance.

You may also be able to use the bcp utility to copy out other tables. But because this problem is often caused by other problems in the database, problems can occur when you copy out other tables.

Related Topics

bcp Utility

BULK INSERT

DBCC CHECKDB

DBCC CHECKCATALOG

Errors 2000 - 2999

Reporting Errors to Your Primary Support Provider


Error 2511

Severity Level 16
Message Text

Table Corrupt: Object ID %d, Index ID %d. Keys out of order on page %S_PGID, slots %d and %d.

Explanation

This error occurs when an index is not ordered correctly. The %S_PGID variable can be a data page (for clustered indexes), an index page, or a leaf page.

Action

The fastest way to resolve this problem is to execute DBCC CHECKDB with the REPAIR_REBUILD clause. This fixes any index corruption in the entire database. If the database is so large that you do not want to run DBCC CHECKDB, use these instructions to locate the specific table that is corrupt. Then, execute DBCC CHECKTABLE with the REPAIR_REBUILD clause for that table.

Important If executing DBCC CHECKDB or DBCC CHECKTABLE with the REPAIR_REBUILD clause does not correct the index problem or if you are unsure what effect either of these DBCC statements with the REPAIR_REBUILD clause has on your data, contact your primary support provider.

Follow these steps:

  1. Note the object ID.

  2. If the object with the error is not a system table (its object ID is more than 100), continue with the next step.

    If the object with the error is a system table (its object ID is less than 100), you cannot drop the index. Restore the database from a known clean backup.

  3. Find the name of the index involved, as follows:
    USE master
GO
SELECT name
FROM sysindexes
WHERE indid = index_id
    AND id = object_id
  4. Drop and re-create the index.

  5. Run DBCC CHECKTABLE on the affected table to verify that all problems have been resolved at the table level.

If problems persist, contact your primary support provider. Have the output from either DBCC CHECKDB or DBCC CHECKTABLE available for review.

Related Topics

DBCC CHECKDB

DBCC CHECKTABLE

Errors 2000-2999

Reporting Errors to Your Primary Support Provider


Error 2513

Severity Level 16
Message Text

Table Corrupt: Object ID %ld (object '%.*ls') does not match between '%.*ls' and '%.*ls'.

Explanation

This error occurs when the DBCC CHECKCATALOG statement deletes a database object in one system table and this is not expected in another. Most often, this occurs when one or more rows in the syscolumns, syscomments, sysindexes, or sysdepends tables have no corresponding rows in sysobjects. This error can also occur if an operation affecting the system table, such as deletion of a user table, was interrupted.

Action

Although this error seldom interferes with database use, it is a good idea to restore the affected system table.

Warning Severe problems can result from the direct manipulation of the system catalogs. Do not modify the system catalogs unless instructed to do so by your primary support provider.

Follow these steps to restore the consistency of the system tables:

  1. Display the offending rows by executing a query in the problem database against the two tables mentioned in the message. For example, if the message reports one or more mismatches between syscolumns and sysobjects:
    USE master
GO
SELECT * FROM syscolumns
WHERE syscolumns.id NOT IN
    (SELECT sysobjects.id FROM sysobjects)
  2. Enable updates to system tables by enabling the allow updates configuration option.

    Before modifying any system catalogs, be sure that you have a valid backup of the database. For more information about backup operations, see Backing Up and Restoring Databases in SQL Server Books Online for SQL Server 7.0.

    Warning Incorrect modification of the system catalogs can result in database corruption or data loss.

  3. Make sure that the rows displayed in Step 1 correspond to reported 2513 errors, and then delete them from the first table mentioned in the message text.

  4. If the number of rows affected by the delete does not match the number found in Step 1, roll back the transaction. If the numbers match, commit it.

  5. To confirm that the mismatches are fixed, reexecute DBCC CHECKCATALOG. Then, disable the allow updates configuration option.

Related Topics

allow updates Option

Backing Up and Restoring Databases

BEGIN TRANSACTION

CHECKPOINT

DBCC CHECKCATALOG

DELETE

Errors 2000-2999

osql Utility

RECONFIGURE

Setting Configuration Options

sp_configure

SQL Server Startup Options

sqlservr Application

syscolumns

syscomments

sysdepends

sysindexes

sysobjects


Error 2535

Severity Level 16
Message Text

Table Corrupt: Page %S_PGID is allocated to object ID %d, index ID %d, not to object ID %d, index ID %d found in page header.

Explanation

The DBCC CHECKALLOC statement detected a mismatch in the object ID between an allocation structure (extent) and sysindexes.

Note Occasionally, DBCC CHECKALLOC reports this error when no real error condition exists. Execute DBCC CHECKALLOC in single-user mode if you suspect the 2535 error is incorrect.

Action

Follow these steps:

  1. Examine the index ID associated with the page number in the message to determine whether the error occurred on the table data or on an index.

  2. Restore the database:
    • If the object ID is less than or equal to 100, the error is on a system table. Restore the database from a clean backup.

    • If the object ID is greater than 100, the error is on a user table.

    • If this error occurs on table data (the index ID = 1), restore the database from a clean backup.

    • If the error occurs on an index, you can usually correct it by dropping and re-creating the index. If dropping and re-creating the index is not feasible, or if you cannot drop the index, contact your primary support provider for assistance.

If the problem persists, contact your primary support provider for assistance. Have the output of the appropriate DBCC statements available for review.

Related Topics

DBCC CHECKALLOC

DBCC CHECKDB

DBCC CHECKTABLE

Errors 2000-2999

Reporting Errors to Your Primary Support Provider


Error 2601

Severity Level 14
Message Text

Cannot insert duplicate key row in object '%.*ls' with unique index '%.*ls'.

Explanation

This error occurs when you attempt to put duplicate index values into a column or columns that have a unique index. Microsoft® SQL Server™ does not allow two rows to have the same index value (including NULL) in columns that have a unique index. SQL Server checks for duplicate values when the index is created and each time the table is modified using the INSERT or UPDATE statement.

Action

If you need duplicate index values in the indexed column(s), drop the unique index and create a nonunique index.

To use a unique index on data that contains duplicate values, you must change some values to prevent the duplication. You can change the data already in the table by using the SELECT or UPDATE statement, or you can change the data to be inserted.

Related Topics

CREATE INDEX

Creating an Index

DELETE

Errors 2000-2999

INSERT

SELECT

UPDATE


Error 2750

Severity Level 16
Message Text

Column or parameter #%d: Specified column precision %d is greater than the maximum precision of %d.

Explanation

This error occurs when the precision of a float, decimal, or numeric column exceeds the maximum value for the specified data type.

For decimal and numeric data types, Microsoft® SQL Server™ normally supports a maximum precision of 28 digits for compatibility with various front ends, such as Microsoft Visual Basic®. However, if a precision greater than 28 is desired, use the /p parameter of the sqlservr application from a Win32® command prompt. For more information about running the sqlservr application, see sqlservr Application in SQL Server Books Online for SQL Server 7.0.

Action

Define the column to have a precision that falls within the allowable precision range for that data type.

Related Topics

decimal and numeric

float and real

Precision, Scale, and Length


Error 2751

Severity Level 16
Message Text

Column or parameter #%d: Specified column scale %d is greater than the specified precision of %d.

Explanation

This error occurs when the scale of a decimal or numeric column exceeds the precision value for that column.

For decimal and numeric data types, Microsoft® SQL Server™ normally supports a maximum precision of 28 digits for compatibility with various applications. However, if a precision greater than 28 is desired, use the /p parameter of the sqlservr application from a Win32® command prompt. For more information about running the sqlservr application, see sqlservr Application in SQL Server Books Online for SQL Server 7.0.

Action

Specify the precision with p, which must be between 1 and the maximum precision, and the scale with s, which must be between 0 and p. If you do not specify the precision, SQL Server uses a default precision of 18. If you do notspecify the scale, SQL Server uses a default scale of 0.

Related Topics

decimal and numeric

Errors 2000-2999

float and real

Precision, Scale, and Length


Error 2812

Severity Level 16
Message Text

Could not find stored procedure '%.*ls'.

Explanation

An attempt was made to execute a stored procedure that does not exist. If the procedure does exist (it appears when sp_help is run with no parameters), the error might have occurred because you did not fully qualify the procedure name. If the procedure is not owned by the user attempting to execute it, and it is not owned by the database owner (dbo), all references to it must include the owner name. For example, suppose user1 creates a procedure called proc1. Any users must add the owner name before the procedure name, as shown in the following example:

EXECUTE user1.proc1

Naming conventions for database objects are as follows:

[[[server_name.][database_name].][owner_name].]object_name

The default value for database_name is the current database; the default value for owner_name is the current user. If the current user is not the owner, the current user must specify the owner name when using the procedure. Because the owner name is part of the object name, two different users can have procedures with the same object name in the same database (for example user1.proc1 and user2.proc1). For more information about naming conventions, see Transact-SQL Syntax Conventions in SQL Server Books Online for SQL Server 7.0.

The only exceptions to this naming convention are system procedures, which can be executed from any database. System procedures reside in the master database, are owned by the system administrator, and have names that begin with sp_. System procedures reference the system tables for the current database.

Action

If you do not know who owns the procedure, use sp_help to display the owner. If you run sp_help without any parameters, it displays objects owned by other users. To determine which procedures exist in a database and who owns them, use the following:

USE master
GO
SELECT name,owner = USER_NAME(uid)
FROM sysobjects
WHERE type = 'P'
GO

If the procedure does not appear in the output of this query, the procedure is either in a different database or does not exist.

If you do not own the procedure in question, you can avoid error 2812 by qualifying the procedure name with the owner name, as shown in the following example:

EXECUTE user1.proc1

For procedures used by many users of a database, it is usually easiest if the dbo creates the procedure. This allows any user to find the procedure without specifying an owner name.

If the procedure is not in the database where it is executed, you can avoid this error by fully qualifying the procedure name with the database name, as shown in the following example:

EXECUTE database_1.user1.proc1

The owner name is not needed if you or the dbo own the procedure. For example:

EXECUTE database_1..proc1

Execute permission must be provided so that other users can execute this procedure, but no permissions are required to see the text of the procedure.

If this error occurs on system procedures, it might be resolved by running Instmstr.SQL. This reinstalls all system procedures and initializes various other structures.

Related Topics

Errors 2000-2999

EXECUTE

sp_configure

sp_help


Error 3023

Severity Level 16
Message Text

Backup, CHECKALLOC, bulk copy, SELECT INTO, and file manipulation (such as CREATE FILE) operations on a database must be serialized. Reissue the statement after the current backup, CHECKALLOC, or file manipulation operation is completed.

Explanation

These operations may not be performed at the same time as a backup operation:

  • File management operations such as the ALTER DATABASE statement with either the ADD FILE or REMOVE FILE clauses; INSERT, UPDATE, or DELETE statements.

  • Shrink database or shrink file.

  • CREATE INDEX.

  • Nonlogged operations such as bulk load, SELECT INTO, WRITETEXT, and UPDATETEXT. The database option select into/bulkcopy must be enabled for these operations to be nonlogged.

If a backup is started when one of these operations is in progress, the backup ends. If a backup is running and one of these operations is attempted, the operation fails. For more information, see Remarks in the BACKUP topic in SQL Server Book Online for SQL Server 7.0.

Action

Reissue the operation after the conflicting operation has completed.

Related Topics

ALTER DATABASE

Backing Up and Restoring Databases

BACKUP

bcp Utility

BULK INSERT

CREATE INDEX

DBCC SHRINKDATABASE

DBCC SHRINKFILE

DELETE

INSERT

SELECT

Setting Database Options

sp_dboption

Troubleshooting Backing Up and Restoring

UPDATE

UPDATETEXT

WRITETEXT


Error 3036

Severity Level 16
Message Text

Database '%ls' is in warm-standby state (set by executing RESTORE WITH STANDBY) and cannot be backed up until the entire load sequence is completed.

Explanation

Your standby database has not been recovered and may not be backed up. Usually, you recover this database only if your primary fails and you switch operations to the standby. Until this occurs, rely on backups taken from the primary server.

Related Topics

Backing Up and Restoring Databases

BACKUP

Troubleshooting Backing Up and Restoring


Error 3101

Severity Level 16
Message Text

Database in use. The system administrator must have exclusive use of the database to run the restore operation.

Explanation

This error occurs when you attempt to load a database backup while users are accessing the database. You cannot use the RESTORE DATABASE statement while the database is in use by any user, including yourself.

Action

Wait until all users have finished using the database, and then use the RESTORE DATABASE statement. Make sure that you are not in the database being loaded when you issue the RESTORE DATABASE statement. Although not required, it is best to run the RESTORE DATABASE statement from the master database.

Related Topics

Backing Up and Restoring Databases

RESTORE


Error 3120

Severity Level 16
Message Text

The database you are attempting to restore was backed up under a different sort order ID (%d) than the one currently running on this server (%d), and at least one of them is a non-binary sort order.

Explanation

This error occurs when attempting to restore a database with a different sort order from that of the backed up database. This error occurs when using any sort order except binary sort order.

A database cannot be restored into Microsoft® SQL Server™ using RESTORE DATABASE unless these items match between the database and the server:

  • Sort order

  • Collation sequence

  • Unicode locale ID

  • Unicode comparison style

Important SQL Server does not support concurrent mixed sort orders. Only the same sort order can be used by both the server and data to be imported or restored.

Action

Change the mismatched items to be the same. For more information, see Changing the Character Set, Sort Order, or Unicode Collation in SQL Server Books Online for SQL Server 7.0.

For example, if the database uses sort order x and the backup to load uses sort order y, then use bcp, BULK INSERT, or Data Transformation Services (DTS) to save the database in the x sort order. Then, reinstall SQL Server. After reinstalling SQL Server, load the database with the y sort order. Finally, use bcp, BULK INSERT, or DTS to restore the data with the x sort order.

Related Topics

Backing Up and Restoring Databases

bcp Utility

BULK INSERT

Overview of Installing SQL Server

Error 3149

RESTORE

Sort Order


Error 3143

Severity Level 16
Message Text

The data set on device '%ls' is not a SQL Server backup set.

Explanation

The backup being restored conforms to the Microsoft Tape Format, but is not a Microsoft® SQL Server™ backup. The backup may have been written by another software product.

Action

To determine the contents of the backup, consider using RESTORE HEADERONLY.

Related Topics

Backing Up and Restoring Databases

BACKUP

RESTORE

RESTORE HEADERONLY

Troubleshooting Backing Up and Restoring


Error 3149

Severity Level 16
Message Text

The database you are attempting to restore was backed up under a different Unicode locale ID (%d) or Unicode comparison style (%d) than the Unicode locale ID (%d) or Unicode comparison style (%d) currently running on this server.

Explanation

This error occurs when attempting to restore a database with a different sort order from that of the backed up database. This error occurs when using any sort order except binary sort order.

A database cannot be restored using RESTORE DATABASE unless these items match between the database and the server:

  • Sort order

  • Collation sequence

  • Unicode locale ID

  • Unicode comparison style

Important Microsoft® SQL Server™ does not support concurrent mixed sort orders. Only the same sort order can be used by both the server and data to be imported or restored.

Action

Change the mismatched items to be the same. For more information, see Changing the Character Set, Sort Order, or Unicode Collation in SQL Server Books Online for SQL Server 7.0.

For example, if the database uses sort order x and the backup to load uses sort order y, then use bcp, BULK INSERT, or Data Transformation Services (DTS) to save the database in the x sort order. Then, reinstall SQL Server. After reinstalling SQL Server, load the database with the y sort order. Finally, use bcp, BULK INSERT, or DTS to restore the data with the x sort order.

Related Topics

Backing Up and Restoring Databases

bcp Utility

BULK INSERT

Error 3120

Overview of Installing SQL Server

RESTORE

Sort Order


Error 3154

Severity Level 16
Message Text

The backup set holds a backup of a database other than the existing '%ls' database.

Explanation

The backup set is a backup of a database with the same name as the database to which you are restoring. However, the database being restored was created by a different CREATE DATABASE statement than the database in the backup set. Even though the databases have the same name, they are in fact different databases.

Action

Either overwrite the existing database by reissuing the RESTORE DATABASE command using the WITH REPLACE clause, or restore the backup set to a different database name. If you restore the backup set to a different database name, ensure that the files that will be created do not already exist and are not being used by another database. If you chose the wrong backup set to restore, select a backup of the existing database and restore it.

Related Topics

Backing Up and Restoring Databases

CREATE DATABASE

RESTORE

Troubleshooting Backing Up and Restoring


Error 3155

Severity Level 16
Message Text

The RESTORE operation cannot proceed because one or more files have been added or dropped from the database since the backup set was created.

Explanation

You must begin the restore sequence by restoring a full database backup created after files were added or removed from the database. You cannot roll forward across file creation or deletion operations.

Related Topics

Backing Up and Restoring Databases

RESTORE

Troubleshooting Backing Up and Restoring


Error 3206

Severity Level 16
Message Text

No entry in sysdevices for backup device '%.*ls'. Update sysdevices and rerun statement.

Explanation

You have attempted to use a logical device that is not a backup device.

Action

Either define the device using sp_addumpdevice, or refer to the physical device directly by specifying the TAPE = or DISK = syntax of the BACKUP statement.

Related Topics

Backing Up and Restoring Databases

Error 3209

sp_addumpdevice

sysdevices

Troubleshooting Backing Up and Restoring


Error 3209

Severity Level 16
Message Text

'%.*ls' is not a backup device. Check sysdevices.

Explanation

You have attempted to use a logical device that is not a backup device.

Action

Either define the device using sp_addumpdevice, or refer to the physical device directly by specifying the TAPE = or DISK = syntax of the BACKUP statement.

Related Topics

Backing Up and Restoring Databases

Error 3206

sp_addumpdevice

sysdevices

Troubleshooting Backing Up and Restoring


Error 3227

Severity Level 16
Message Text

The volume on device '%ls' is a duplicate of stripe set member %d.

Explanation

The media family spans multiple volumes. The restore operation has already processed the data on the volume specified in the error message.

Action

Remove the volume and insert the next volume that has not yet been processed.

Related Topics

Backing Up and Restoring Databases

RESTORE

Troubleshooting Backing Up and Restoring


Error 3242

Severity Level 16
Message Text

The file on device '%ls' is not a valid Microsoft Tape Format backup set.

Explanation

The backup device does not contain data in Microsoft Tape Format due to one of these occurrences:

  • The BACKUP statement did not write the contents of the device.

  • The device contains a Microsoft® SQL Server™ version 6.x database dump. SQL Server 7.0 cannot restore backups from earlier versions of SQL Server.

  • The contents of the device have been damaged.

Related Topics

Backing Up and Restoring Databases

BACKUP

RESTORE

Troubleshooting Backing Up and Restoring


Error 3247

Severity Level 16
Message Text

The volume on device '%ls' has the wrong media sequence number (%d). Remove it and insert volume %d.

Explanation

The media family spans multiple volumes. The restore operation expected to process the volume specified in the error message, but found a different volume value instead.

Action

Remove the specified volume and insert the volume with the requested value.

Related Topics

Backing Up and Restoring Databases

RESTORE

Troubleshooting Backing Up and Restoring


Error 3249

Severity Level 16
Message Text

The volume on device '%ls' is a continuation volume for the backup set. Remove it and insert the volume holding the start of the backup set.

Explanation

The media family spans multiple volumes. The backup set to be processed by the restore operation starts on an earlier volume than the one inserted into the named device.

Action

Remove the volume and insert the volume containing the start of the target backup set. To determine which backup sets are contained on which volumes, use RESTORE HEADERONLY.

Related Topics

Backing Up and Restoring Databases

RESTORE

RESTORE HEADERONLY

Troubleshooting Backing Up and Restoring


Error 3251

Severity Level 10
Message Text

The RAID stream on device '%ls' has been finished. The device will now be re-used for one of the remaining RAID streams.

Explanation

The restore operation allows a media set to be restored with fewer physical devices than was used to create it (also known as backing it up). This message means that the restore operation has completely processed the media family on the named device, and is now ready to reuse the device to restore one of the remaining media families.

Action

Remove the volume from the named device and insert the first volume of a media family that has not yet been processed.

Related Topics

Backing Up and Restoring Databases

RESTORE

Troubleshooting Backing Up and Restoring


Error 3256

Severity Level 16
Message Text

The backup set on device '%ls' was aborted while it was being created and is incomplete. RESTORE sequence is terminated abnormally.

Explanation

The backup operation that created the backup set did not finish successfully. You can only restore backup sets that were created successfully. For example, the backup may have been terminated with an attention message. The backup set is not complete, and the restore operation must terminate.

Action

If you were restoring a database backup, restore a different database backup, and use log backups to roll forward. If you were restoring a log backup, apply the next log backup, the log backup made following the incomplete backup, instead.

Related Topics

Backing Up and Restoring Databases

BACKUP

RESTORE

Troubleshooting Backing Up and Restoring


Error 3258

Severity Level 16
Message Text

The volume on device '%ls' belongs to a different media set.

Explanation

The volume on the named device does not belong to the same RAID media set as the other volumes being processed.

Action

For tape media sets, remove the offending volume and insert the next volume of the media family.

For disks, reissue the command. Name only those backup devices that were part of the same RAID media set.

Related Topics

Backing Up and Restoring Databases

BACKUP

RESTORE

Troubleshooting Backing Up and Restoring


Error 3263

Severity Level 10
Message Text

Cannot use the volume on device '%ls' as a continuation volume. It is sequence number %d of family %d for the current media set. Insert a new volume, or sequence number %d of family %d for the current set.

Explanation

The RAID media set spans multiple volumes. Initializing the volume currently in the named device would destroy the integrity of the RAID media set because the volume has already been used as a member of the media set.

Action

Remove the volume and insert a fresh tape that can be overwritten.

Related Topics

Backing Up and Restoring Databases

RESTORE

Troubleshooting Backing Up and Restoring


Error 3267

Severity Level 16
Message Text

Insufficient resources to create UMS scheduler.

Explanation

When attempting a backup or restore operation, this error message indicates that the server is too busy to perform the backup or restore operation.

Action

Retry the operation after reducing the server load.

Related Topics

Backing Up and Restoring Databases

BACKUP

RESTORE

Troubleshooting Backing Up and Restoring


Error 3414

Severity Level 10
Message Text

Database '%.*ls' (database ID %d) could not recover. Contact Technical Support for further instructions.

Explanation

During startup, Microsoft® SQL Server™ could not complete the recovery of the specified database.

Action

To determine why recovery failed, examine the error log for any errors prior to error 3414. It is important to examine errors that occurred before the first occurrence of error 3414 because subsequent attempts to start the server might not give the detailed error information you need to diagnose the problem. If you do not have sufficient information to recover from the previous errors, you can recover from known clean backups, or you can contact your primary support provider for assistance. Note that you cannot use the database until whatever caused the error has been corrected.

Related Topics

Reporting Errors to Your Primary Support Provider


Error 3604

Severity Level 10
Message Text

Duplicate key was ignored.

Explanation

This error occurs when you attempt to insert a row that has an index value that violates the uniqueness property (UNIQUE with IGNORE_DUP_KEY) on an existing index.

Microsoft® SQL Server™ ignores the statement that caused the error and continues processing the transaction.

Action

No action is necessary unless you want to insert that row into the table. If so, you can drop and re-create the index without the UNIQUE clause, or you can change the data causing the uniqueness violation.

Related Topics

CREATE INDEX

Creating an Index


Error 3627

Severity Level 16
Message Text

Could not create worker thread.

Explanation

When attempting a backup or restore operation, this error message indicates that the server is too busy to perform the backup or restore operation.

Action

Retry the operation after reducing the server load.

Related Topics

Backing Up and Restoring Databases

BACKUP

RESTORE

Troubleshooting Backing Up and Restoring


Error 4207

Severity Level 16
Message Text

BACKUP LOG is not allowed while the select into/bulk copy option is enabled. Use BACKUP DATABASE or disable the option using sp_dboption.

Explanation

This error occurs when you perform a nonlogged operation on a database, such as bulk copy or SELECT INTO, followed by a BACKUP LOG to a dump device. Because there is data in your database that has not been logged and the log therefore cannot be used to properly recover the database, the BACKUP LOG operation is not allowed. For example, if a user executes a SELECT INTO followed by an UPDATE statement, the SELECT INTO operation is not logged, and the UPDATE results cannot be recovered from the log.

Note that simply enabling the select into/bulkcopy option does not, in itself, cause this condition. The option must be set and a nonlogged operation executed before this error message is reported.

Backing up the database creates a new savepoint on which subsequent transaction logs are based. Therefore, backing up the database ensures that the nonlogged changes are recoverable and backing up the transaction log to a device is once again allowed.

Action

You must perform a BACKUP DATABASE. Disabling the select into/bulkcopy option using sp_dboption will not allow you to back up the log (even though the message says this is an option). To clear the 4207 error condition, you must back up the database.

You might need to use BACKUP LOG WITH TRUNCATE_ONLY until you can perform a full database backup. If you must do this, you lose the ability to recover up-to-the-minute data changes in case of a media failure.

Related Topics

Backing Up and Restoring Databases

BACKUP

SAVE TRANSACTION

SELECT

Setting Database Options

sp_dboption

UPDATE


Error 4208

Severity Level 16
Message Text

BACKUP LOG is not allowed while the trunc. log on chkpt. option is enabled. Use BACKUP DATABASE or disable the option using sp_dboption.

Explanation

If the trunc. log on chkpt. database option is enabled, the log is truncated when periodic checkpoints occur. Only full database and differential database backups are allowed because the log has been truncated and any log backups made would be unusable.

Action

To maintain your database by performing only full and differential database backups, leave the trunc. log on chkpt. database option enabled and use BACKUP DATABASE.

To maintain a full set of transaction log backups to guarantee that no change to the database is lost in the event of a failure, disable the trunc. log on chkpt. database option, backup the database using BACKUP DATABASE, and begin taking periodic transaction log backups.

Related Topics

Backing Up and Restoring Databases

BACKUP

Setting Database Options

sp_dboption

Troubleshooting Backing Up and Restoring


Error 4214

Severity Level 10
Message Text

There is no current database backup. This log backup cannot be used to roll forward a preceding database backup.

Explanation

To restore the database after failure, you must begin either with a full database backup, or with a partial or complete set of file backups. Either this database has never been backed up or a BACKUP LOG statement was executed after an ALTER DATABASE statement, which added or removed one or more files, was performed. Therefore, the log backup just completed is not useful.

Action

Perform a full database backup before backing up the log.

Related Topics

Backing Up and Restoring Databases

BACKUP

Troubleshooting Backing Up and Restoring


Error 4305

Severity Level 16
Message Text

This backup set cannot be restored because the database has not been rolled forward far enough. You must first restore all earlier logs before restoring this log.

Explanation

The restore operation found a gap between the last restore and the transaction log that you attempted to apply.

Action

Locate the missing, earlier transaction log backups and apply these first. Transaction logs must be restored in the same order in which they were backed up.

Related Topics

Backing Up and Restoring Databases

RESTORE

Troubleshooting Backing Up and Restoring


Error 4306

Severity Level 16
Message Text

The preceding restore operation did not specify WITH NORECOVERY or WITH STANDBY. Restart the restore sequence, specifying WITH NORECOVERY or WITH STANDBY for all but the final step.

Explanation

After the database has been recovered, no further restore operations may be performed.

Action

To recover a database, start the sequence over and use the NORECOVERY clause on all RESTORE statements except the last. If you are maintaining a standby server and want to bring up the database in read-only mode between restore operations, use the STANDBY clause of RESTORE instead of the NORECOVERY clause.

Related Topics

Backing Up and Restoring Databases

RESTORE

Troubleshooting Backing Up and Restoring


Error 4318

Severity Level 16
Message Text

File '%ls' has been rolled forward to LSN %.*ls. This log terminates at LSN %.*ls, which is too early to apply the WITH RECOVERY option. Reissue the RESTORE LOG statement WITH NORECOVERY.

Explanation

You have attempted to recover the database to its state at the time the current log backup was made. However, at least one file has been modified since this backup was created. Recovery is not possible because the database would be left in an inconsistent state.

Action

To recover the database to its most recent state, reissue the RESTORE LOG statement with the NORECOVERY clause and continue to apply transaction logs, recovering only when you have rolled far enough forward.

To recover the database to the point-in-time at the end of this log backup, use RESTORE DATABASE to restore the indicated file to an earlier state and roll it forward.

Related Topics

Backing Up and Restoring Databases

RESTORE

Troubleshooting Backing Up and Restoring


Error 5013

Severity Level 16
Message Text

The master and model databases cannot have files added to them. ALTER DATABASE was aborted.

Explanation

This error occurs when you attempt to extend either the master or model databases by adding database files.

Action

Extend the master or model databases only when necessary. The master database will grow automatically, if needed. If there is no room on the disk drive where the master files reside, either delete other files to make more disk space or replace the disk drive with a larger disk drive. If you need to expand the model database, ensure that there is available disk space on the disk drive where the model data files currently reside.

Related Topics

ALTER DATABASE

Rebuilding the master Database (Level 4)

Restoring the master Database from a Current Backup


Error 5701

Severity Level 10
Message Text

Changed database context to '%.*ls'.

Explanation

This is an informational message indicating that the database context has changed. This message is returned anytime a USE database statement is executed.

Action

None needed.

Related Topics

USE


Error 5808

Severity Level 16
Message Text

Ad hoc updates to system catalogs not recommended. Use the RECONFIGURE WITH OVERRIDE statement to force this configuration.

Explanation

This error message occurs in one of these two situations:

  • When a user tries to use the sp_configure system stored procedure with the allow updates option

  • When a user tries to set a configuration parameter to a value that Microsoft® SQL Server™ recognizes as likely to interfere with performance or smooth operation

When the allow updates option is enabled, SQL Server allows direct updates to the system tables, so any user who can log on as the SQL Server system administrator can update the system tables directly with ad hoc queries and can create stored procedures that update the system catalog. Incorrect changes to the system tables can cause unrecoverable database corruption or data loss.

Warning Severe problems can result from the direct manipulation of the system catalogs. Do not modify the system catalogs unless instructed to do so by your primary support provider.

Action

Before modifying any system catalogs, be sure that you have a valid backup of the database. For more information about backup operations, see Backing Up and Restoring Databases in SQL Server Books Online for SQL Server 7.0.

Warning Incorrect modification of the system catalogs can result in database corruption or data loss.

If possible, restart SQL Server in single-user mode by using the -m flag of the sqlservr application so that inadvertent modifications do not occur. For more information, see sqlservr Application in SQL Server Books Online for SQL Server 7.0.

To modify system catalogs, use the osql utility to alter the allow updates system configuration setting.

Note Only the system administrator can alter the value for the allow updates system configuration setting.

Related Topics

allow updates Option

osql Utility

RECONFIGURE

Reporting Errors to Your Primary Support Provider

Setting Configuration Options

sp_configure

SQL Server Startup Options


Error 6103

Severity Level 17
Message Text

Could not do cleanup for the killed process. Received message %d.

Explanation

This error message occurs when another error caused a user connection to terminate abnormally. The message number that caused this error will be printed in the error 6103 message.

Action

Examine and resolve the "received message" reported in this error message.

Related Topics

How to kill a process (Enterprise Manager)

KILL


Error 7130

Severity Level 16
Message Text

%ls WITH NO LOG is not valid at this time. Use sp_dboption to set the 'select into/bulk copy' option on for database '%.*ls'.

Explanation

This error occurs upon executing either the UPDATETEXT or WRITETEXT statements, or either the dbupdatetext or dbwritetext routines in a database that does not have the sp_dboption system stored procedure's select into/bulkcopy option enabled. Because these are nonlogged operations, the option must be enabled.

Often, UPDATETEXT, WRITETEXT, dbupdatetext, and dbwritetext are run against a temporary table. The select into/bulkcopy option must be enabled in tempdb, or these will not run successfully.

Action

Enable the sp_dboption system stored procedure's select into/bulkcopy option for all databases affected by the query that contains a nonlogged operation. To do this, the system administrator and database owners should follow these steps:

  1. Enable the option:
    USE master
GO
sp_dboption database_name, 'select into/bulkcopy',true
GO
USE database_name
GO
CHECKPOINT
GO
  2. Verify that the change is active:
    sp_helpdb database_name
GO
  3. Execute the nonlogged operation.

  4. When the nonlogged operation is complete, backup the database.

    Caution After executing a nonlogged operation, do not back up the transaction log. Although the procedure may appear to succeed, you may have been backing up only empty text pages. Whenever you make nonlogged changes to your database, you must use the BACKUP DATABASE statement, because changes made by the nonlogged operation cannot be recovered from transaction logs.

  5. Return the database to its original condition by disabling the select into/bulkcopy option:
    USE master
GO
sp_dboption database_name, 'select into/bulkcopy',false
GO
USE database_name
GO
CHECKPOINT
GO
  6. Verify that the change is active:
    sp_helpdb database_name
GO

Related Topics

Backing Up and Restoring Databases

CHECKPOINT

dbwritetext

Setting Database Options

sp_dboption

dbupdatetext

sp_helpdb

UPDATETEXT

WRITETEXT


Error 7303

Severity Level 16
Message Text

Could not initialize data source object of OLE DB provider '%ls'. %ls

Explanation

This error message indicates that the OLE DB data source object could not be initialized.

Action

This error message can occur because of one of these problems.

Problem | Resolution
One of the initialization parameters specified in sp_addlinkedserver (data_source, location, provider_string, or catalog) is incorrect for this provider. | Verify that these parameters defined for the linked server, specified by executing sp_addlinkedserver, are correct for the given provider. Check the provider's documentation for the appropriate values for these parameters.
Login and password sent to the provider is invalid. | Verify that there is a valid login and password configured for the linked server and the current SQL Server login through sp_addlinkedsrvlogin.

Related Topics

Distributed Queries

Errors 7000 - 7999

sp_addlinkedserver

sp_addlinkedsrvlogin


Error 7304

Severity Level 16
Message Text

Could not create a new session on OLE DB provider '%ls'.

Explanation

Unable to create a new session to the OLE DB data source.

Action

Check for error messages returned by the provider and review provider documentation.

Related Topics

Accessing External Data Using Distributed Queries

sp_addlinkedserver


Error 7306

Severity Level 16
Message Text

Could not open table '%ls' from OLE DB provider '%ls'. %ls

Explanation

This error message is returned if the OLE DB provider does not support the interfaces and OLE DB properties required for the UPDATE, DELETE, and INSERT statements.

Action

In this scenario, a trace on OLE DB Errors would output additional information on the specific missing OLE DB support. For example, in the case of Microsoft® SQL Server™, the INSERT, UPDATE, and DELETE statements are not supported on the remote table if the table does not have a unique index defined on it. In this case, SQL Server Profiler would output the following information:

OLE/DB Provider 'SQLOLEDB' IOpenRowset::OpenRowset returned 0x80040e21:
[PROPID=DBPROP_BOOKMARKS VALUE=True STATUS=DBPROPSTATUS_OK], [PROPID=DBPROP_IRowsetLocate
VALUE=True STATUS=DBPROPSTATUS_OK], [PROPID=DBPROP_IRowsetChange VALUE=True
STATUS=DBPROPSTATUS_CONFLICTING], [PROPID=DBPROP_UPDATABILITY VALUE=1 STATUS=DBPROPSTATUS_OK]

This error message indicates the status of each OLE DB property that was requested on the rowset opened against the table being updated. This information indicates that all properties required by SQL Server to perform this query, except the DBPROP_IRowsetChange property, were satisfied by the provider.

Related Topics

Distributed Queries

Errors 7000 - 7999

sp_addlinkedserver


Error 7314

Severity Level 16
Message Text

OLE DB provider '%ls' does not contain table '%ls'.

Explanation

Either the specified table or columns do not exist or the login used to connect to the provider does not have the required permissions on the table or columns.

This message occurs on case-sensitive servers.

Action

Verify that the table or columns specified exist. Verify that the appropriate permissions are granted on the table or columns specified.

If the table was originally created in Oracle without quotation marks, specify the table name in the distributed query using all uppercase letters. If the table was originally created in Oracle with quotation marks, specify the table name in the distributed query using all lowercase letters.

Related Topics

Distributed Queries

Errors 7000 - 7999

OLE DB Providers Tested with SQL Server

sp_addlinkedserver


Error 7321

Severity Level 16
Message Text

An error occurred while preparing a query for execution against OLE DB provider '%ls'. %ls

Explanation

Indicates a possible syntax error in the pass-through query's query string parameter.

Action

Verify that the query string is free of syntax errors (with respect to the query language supported by the OLE DB provider).

Related Topics

Distributed Queries

Errors 7000 - 7999

OPENQUERY


Error 7356

Severity Level 16
Message Text

OLE DB provider '%ls' supplied inconsistent metadata for a column. Metadata information was changed at execution time.

Explanation

This error indicates that there was inconsistent metadata reported by the provider on a given table between compilation time and execution time of the query. This typically occurs because the provider returns inconsistent metadata between the OLE DB schema rowset COLUMNS (during compilation) and that metadata reported by the IColumnsInfo interface on the table's rowset.

Action

Consult SQL Server Profiler to determine which table column caused this error.

Related Topics

Distributed Queries

Errors 7000 - 7999

Monitoring with SQL Server Profiler

sp_addlinkedserver


Error 7357

Severity Level 16
Message Text

Could not process object '%ls'. The OLE DB provider '%ls' indicates that the object has no columns.

Explanation

Either the specified table or columns do not exist or the login used to connect to the provider does not have the required permissions on the table or columns.

Action

Verify that the table or columns specified exist. Verify that the appropriate permissions are granted on the table or columns specified.

Related Topics

Distributed Queries

sp_addlinkedserver


Error 7391

Severity Level 16
Message Text

The operation could not be performed because the OLE DB provider '%ls' does not support distributed transactions.

Explanation

This error can occur while processing an INSERT, UPDATE, or DELETE statement inside an explicit or implicit transaction. This indicates that the OLE DB provider does not support distributed transactions, which is needed for data modification statements inside an explicit or implicit transaction. A data modification statement can be executed against such a provider only in the case where the statement is a transaction by itself.

Action

Verify that the OLE DB provider specified supports distributed transactions. If the provider does not support distributed transactions, rewrite the data modification statement not to use distributed transactions.

Related Topics

Distributed Queries


Error 7392

Severity Level 16
Message Text
Could not start a transaction for OLE DB provider '%ls'.

Microsoft® SQL Server™ also returns this error message if the provider is a SQL Server-specific provider:

Only one transaction can be active on this session.
Explanation

The OLE DB provider returned error 7392 because only one transaction can be active for this session. This error indicates that a data modification statement is being attempted against an OLE DB provider when the connection is in an explicit or implicit transaction, and the OLE DB provider does not support nested transactions. SQL Server requires this support so that, on certain error conditions, it can terminate the effects of the data modification statement while continuing with the transaction.

Action

SET XACT_ABORT is ON. This causes SQL Server to terminate the surrounding transaction when there is an error while processing the data modification statement. If SET XACT_ABORT is ON, SQL Server does not require nested transaction support from the OLE DB provider.

Related Topics

Distributed Queries

SET XACT_ABORT


Error 7399

Severity Level 16
Message Text

OLE DB provider '%ls' reported an error. %ls

Cannot start your application. The workgroup information file is missing or opened exclusively by another user.

Explanation

This error message returned by the Microsoft OLE DB Provider for Jet indicates one of the following:

  • The Microsoft® Access database is not a secured database and the login and password specified was not Admin with no password.

  • The Access database is secured and the HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\SystemDB registry key is not pointing to the correct Access workgroup file. Secured Access databases have a corresponding workgroup file, including the full path, which should be indicated by the above registry key.
Action

Verify that there is a login mapping for the current Microsoft SQL Server™ login to Admin with no password.

If the Access database being accessed is secured, make sure that the above registry key points to the full pathname of the Access workgroup file.

Related Topics

Distributed Queries

sp_addlinkedserver


Error 7403

Severity Level 16
Message Text

Could not locate registry entry for OLE DB provider '%ls'.

Explanation

This error message indicates one of the following:

  • The OLE DB provider is not registered properly.

  • The name of the provider used in the provider_name parameter of sp_addlinkedserver (or specified in the OPENROWSET function) is incorrect.
Action

Verify that the provider has been registered correctly and that the provider_name parameter uses the PROGID of the provider.

Related Topics

Distributed Queries

OPENROWSET

sp_addlinkedserver


Error 7413

Severity Level 16
Message Text

Could not perform a Windows NT authenticated login because delegation is not available.

Explanation

This error message indicates that a distributed query is being attempted for a Microsoft® Windows NT® authenticated login without an explicit login mapping. In an operating-system environment in which security delegation is not supported, Windows NT authenticated logins need an explicit mapping to a remote login and password created using sp_addlinkedsrvlogin.

Action

Create explicit mapping to a remote login and password using sp_addlinkedsrvlogin.

Related Topics

Distributed Queries

sp_addlinkedsrvlogin


Error 8101

Severity Level 16
Message Text

An explicit value for the identity column in table '%.*ls' can only be specified when a column list is used and IDENTITY_INSERT is ON.

Explanation

You have attempted to insert a row containing a specific identity value into a table that contains an identity column. However, you did not provide a column list or have SET IDENTITY_INSERT enabled for the specified table.

Action

To insert a specific identity row in a table containing an identity column successfully you must provide a column list and SET IDENTITY_INSERT to ON. The following example inserts identity row 2, where iID is defined as the identity column.

Table: tblTest
iID         strData
1           King
3           Suyama

-- Enable IDENTITY_INSERT.
SET IDENTITY_INSERT tblTest ON
GO
-- Insert the specified identity row using a column list .
INSERT INTO tblTest (iID, strData) values (2, 'Davolio')
GO
-- Disable IDENTITY_INSERT .
SET IDENTITY_INSERT tblTest OFF
GO

Related Topics

SET IDENTITY_INSERT


Error 8102

Severity Level 16
Message Text

Cannot update identity column '%.*ls'.

Explanation

You have specifically attempted to alter the value of an identity column in the SET portion of the UPDATE statement. You can only use the identity column in the WHERE clause of the UPDATE statement.

Action

Updating of the identity column is not allowed. To update an identity column, you can use the following techniques:

  • To reassign all identity values, bulk copy the data out, and then drop and re-create the table with the proper seed and increment values. Then bulk copy the data back into the newly created table. When bcp inserts the values it will appropriately increase the values and redistribute the identity values. You can also use the INSERT INTO and sp_rename commands to accomplish the same action.

  • To reassign a single row, you must delete the row and insert it using the SET IDENTITY_INSERT tblName ON clause.

Related Topics

bcp Utility

INSERT

SET IDENTITY_INSERT

sp_rename

UPDATE


Error 8106

Severity Level 16
Message Text

Table '%.*ls' does not have the identity property. Cannot perform SET operation.

Explanation

You have attempted to use the SET IDENTITY_INSERT property on a table that does not contain an identity column.

Action

Double-check the table in question by using the sp_help tblName stored procedure to verify the identity column information.

Related Topics

SET IDENTITY_INSERT

sp_help


Error 8114

Severity Level 16
Message Text

Error converting data type %ls to %ls.

Explanation

If the error text refers to both DBTYPE_DATE and datetime, respectively, this error message indicates that a DBTYPE_DATE OLE DB data type column from a remote table could not be converted to a datetime value in Microsoft® SQL Server™. The DBTYPE_DATE column most likely has a value outside the range supported by the datetime data type (datetime values must be from January 1, 1753, through December 31, 9999). Because the range of values of the DBTYPE_DATE data type is larger than that of the SQL Server datetime data type, such errors can occur if the column contains values outside of the range supported by SQL Server.

Action

Remove the remote table column of DBTYPE_DATE data type from the query select list or predicate list.

Related Topics

datetime and smalldatetime

Distributed Queries

Errors 7000 - 7999


Error 8163

Severity Level 16
Message Text

The text, ntext, or image data type cannot be selected as DISTINCT.

Explanation

When querying, Microsoft® SQL Server™ does not allow the use of SELECT DISTINCT on a text, ntext, or image column. For example, this query fails, returning error 8163:

USE Northwind
SELECT DISTINCT Description
FROM Categories
Action

Remove references to any text, ntext, or image columns when using SELECT DISTINCT.

Related Topics

Eliminating Duplicates with DISTINCT

Query Fundamentals

SELECT


Error 8501

Severity Level 16
Message Text

MS DTC on server '%.*ls' is unavailable.

Explanation

This error can occur while processing an INSERT, UPDATE, or DELETE statement inside an explicit or implicit transaction. This error typically indicates that the MSDTC service is not running on the local server. Data modification statements in an explicit or implicit transaction require the MSDTC service to be running and the provider's support of distributed transactions.

Action

Use SQL Server Service Manager to verify that the MSDTC service has been started on the server. For more information, see your Microsoft Distributed Transaction Coordinator documentation.

Related Topics

Distributed Queries

Errors 7000 - 7999


Error 8645

Severity Level 17
Message Text

A time out occurred while waiting for memory resources to execute the query. Re-run the query.

Explanation

If the query wait configuration option is -1, then Microsoft® SQL Server™ waited 25 times the estimated query cost for the memory required to run the query. If query time is a nonnegative value, then SQL Server waited this amount of time, in seconds, for the memory required to run the query. The query timed out and it has not been executed.

Action

You can:

  • Free memory on the server.
    • Check the size of the virtual memory paging file.

    • If possible, increase the size of the file.

    • Shut down any other applications running, if applicable, on the server.
  • Add additional memory to the server.

  • Reduce the server workload.

    To decrease the server workload, reduce the number of users currently using SQL Server. To prevent additional users from logging in to SQL Server, pause the server. For more information, see Pausing and Resuming SQL Server in SQL Server Books Online for SQL Server 7.0.

  • Create one or more indexes.

  • Increase the query wait configuration value.

Related Topics

Index Tuning Wizard

query wait Option

sp_configure


Error 8651

Severity Level 17
Message Text

Could not perform the requested operation because the minimum query memory is not available. Decrease the configured value for the 'min memory per query' server configuration option.

Explanation

SQL Server has computed the amount of memory that this query requires to complete. This amount of required memory is not currently available; the min memory per query option may be too high.

Action

Resubmit the query. If resubmitting the query does not allow the query to run, you can:

  • Add additional memory to the server.

  • Create one or more indexes.

  • Reduce the value of min memory per query.

  • Increase the query wait configuration option if it is a nonzero value.

Related Topics

Index Tuning Wizard

min memory per query Option

query wait Option

sp_configure


Error 8906

Severity Level 16
Message Text
Page %S_PGID in database ID %d is allocated in the SGAM %S_PGID and PFS %S_PGID, but was not allocated in any IAM. PFS flags '%hs'.
Explanation

SQL Server has found an allocation error in the specified database.

Action

Either restore from a known clean backup or execute DBCC CHECKDB with the REPAIR_ALLOW_DATA_LOSS clause. For example:

DBCC CHECKDB('pubs', REPAIR_ALLOW_DATA_LOSS)

If the error involves an index page, use the REPAIR_REBUILD clause. If the error involves a data page, it may be necessary to use the REPAIR_ALLOW_DATA_LOSS clause. In the likely event that you cannot allow the loss of data, you will need to restore from a known clean backup. If the problem persists, contact your primary support provider. Have the output from DBCC CHECKDB available for review.

Important If executing DBCC CHECKDB with one of the repair clauses does not correct the index problem or if you are unsure what effect DBCC CHECKDB with a repair clause has on your data, contact your primary support provider.

If DBCC CHECKDB with the REPAIR_ALLOW_DATA_LOSS clause does not resolve the allocation error, contact your primary support provider.

Related Topics

DBCC CHECKDB

Managing Extent Allocations and Free Space

Reporting Errors to Your Primary Support Provider


Error 8908

Severity Level 16
Message Text

Table Corrupt: Database ID %d, object ID %d, index ID %d. Chain linkage mismatch. %S_PGID->next = %S_PGID, but %S_PGID->prev = %S_PGID.

Explanation

This error occurs when Microsoft® SQL Server™ detects an inconsistency in the page linkage of one of the page chains associated with a table, for example, when a page's next pointer points to a page whose previous pointer points back to a different page. There is one doubly-linked page chain for the table data as well as one for each index level.

Important This is a serious error and must be corrected immediately.

If DBCC statements detect this error during run-time processing, error 605 will also occur.

Action

Determine which table is corrupt by examining the current page in the error message. Execute DBCC CHECKDB without a repair clause to determine the extent of the corruption. Then, execute DBCC CHECKDB with the appropriate repair clause to repair the corruption. If the page is associated with an index, it is sometimes possible to resolve the problem by dropping the index. In most cases, you must recover the database from a known clean backup.

If the error involves an index page, use the REPAIR_REBUILD clause. If the error involves a data page, it may be necessary to use the REPAIR_ALLOW_DATA_LOSS clause. In the likely event that you cannot allow the loss of data, you will need to restore from a known clean backup. If the problem persists, contact your primary support provider. Have the output from DBCC CHECKDB available for review.

Important If executing DBCC CHECKDB with one of the repair clauses does not correct the index problem or if you are unsure what effect DBCC CHECKDB with a repair clause has on your data, contact your primary support provider.

You should also examine your operating-system error log file, in addition to the SQL Server error log, to determine if hardware errors might have caused the corruption.

If the problem persists, contact your primary support provider. Have the output from the DBCC CHECKDB statement available for review.

Related Topics

DBCC CHECKDB

Errors 2000 - 2999

Errors 8000 - 8999

Reporting Errors to Your Primary Support Provider


Error 8925

Severity Level 16
Message Text

Table Corrupt: Cross object linkage: Page %S_PGID, slot %d, in object ID %d, index ID %d, refers to page %S_PGID, slot %d, in object ID %d, index ID %d.

Explanation

This error occurs when Microsoft® SQL Server™ detects an inconsistency in the page linkage of one of the page chains associated with a table. One of the pages has been found to be linked in more than one page chain when it should be linked in only one chain. There is one doubly-linked page chain for the table data, as well as one for each index level.

Important This is a serious error and must be corrected immediately.

If DBCC CHECKDB without a repair clause detects this error during run-time processing, error 605 can also occur.

Action

Follow these steps to resolve the error:

  1. Examine the index ID associated with the page number indicated in the message to determine whether the error occurred on the table data or on an index.

  2. Restore the database:
    • If the object ID is less than or equal to 100, the error is on a system table. Restore the database from a clean backup.

    • If the object ID is greater than 100, the error is on a user table.

    • If this error occurs on table data (the index ID = 0), restore the database from a clean backup.

    • If the error occurs on an index, you can usually correct it by dropping and re-creating the index. If dropping and re-creating the index is not feasible, or if you cannot drop the index, contact your primary support provider for assistance.

If the problem persists, contact your primary support provider for assistance. Have the output of the appropriate DBCC statements available for review.

Related Topics

Errors 2000 - 2999

Errors 8000 - 8999

Reporting Errors to Your Primary Support Provider


Error 8952

Severity Level 16
Message Text

Table Corrupt: Database '%ls', index '%ls.%ls' (ID %d) (index ID %d). Extra or invalid key for the keys:

Explanation

This error message indicates that one or more indexes are damaged and must be repaired or dropped.

Action

Repair indexes by executing DBCC CHECKDB with the REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST, or REPAIR_REBUILD clauses. To determine which repair clause best suits your needs, consult DBCC CHECKDB before executing it.

Important If executing DBCC CHECKDB with one of the repair clauses does not correct the index problem or if you are unsure what effect DBCC CHECKDB with a repair clause has on your data, contact your primary support provider.

Related Topics

DBCC CHECKDB

Error 8956

Reporting Errors to Your Primary Support Provider


Error 8956

Severity Level 16
Message Text

Index row (%d:%d:%d) with values (%ls) points to the data row identified by (%ls).

Explanation

If Microsoft® SQL Server™ returns this error message, it always follows error 8952.

This error message indicates that one or more indexes are damaged and must be repaired or dropped.

Action

Repair indexes by executing DBCC CHECKDB with the REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST, or REPAIR_REBUILD clauses. To determine which repair clause best suits your needs, consult DBCC CHECKDB before executing it.

Important If executing DBCC CHECKDB with one of the repair clauses does not correct the index problem or if you are unsure what effect DBCC CHECKDB with a repair clause has on your data, contact your primary support provider.

Related Topics

DBCC CHECKDB

Error 8952

Reporting Errors to Your Primary Support Provider


Error 8976

Severity Level 16
Message Text

Table Corrupt: Object ID %d, index ID %d. Page %S_PGID not allocated or corrupt. Parent %S_PGID and previous %S_PGID refer to it.

Explanation

This error means that a page is not allocated to an object that references it. When the index is used, Microsoft® SQL Server™ returns either error 605 or error 823.

Important This error is serious. Data corruption is possible.

Pages encountering error 8976 may not be included in a database backup, because database backups are performed by reading allocation pages and not by traversing page chains. Correct this error before backing up the database.

Action

If a known clean backup is available, restore the database from the backup.

If no clean backup is available, use DBCC CHECKDB or DBCC CHECKFILEGROUP to determine the extent of the problem. Then, use DBCC CHECKDB with the appropriate repair clause to repair the damage. If the Object ID is 1 or 2 and the index ID is 1, or the table is sysfiles1, then DBCC CHECKDB cannot repair the page.

Important If executing DBCC CHECKDB with one of the repair clauses does not correct the index problem or if you are unsure what effect DBCC CHECKDB with a repair clause has on your data, contact your primary support provider.

For indexes (0 < Index ID < 255)

The problem can be resolved by dropping and re-creating the index in question. After the index is rebuilt, run DBCC CHECKALLOC to verify that the problem no longer exists. If it persists, call your primary support provider.

Related Topics

DBCC CHECKALLOC

DBCC CHECKDB

DBCC CHECKFILEGROUP

Reporting Errors to Your Primary Support Provider


Error 9002

Severity Level 19
Message Text

The log file for database '%.*ls' is full. Back up the transaction log for the database to free up some log space.

Explanation

The specified transaction log file has run out of free space.

Action

You can:

  • Free disk space on any disk drive containing the log file for the related database. Freeing disk space allows the recovery system to grow the log file automatically.

Or

  1. Free disk space on a different disk drive.

  2. Move the transaction log files with an insufficient amount of free disk space to the disk drive in Step 1.

  3. Detach the database by executing sp_detach_db.

  4. Attach the database by executing sp_attach_db, pointing to the moved files.

Or

  • Either add a log file to the specified database by using the ADD FILE clause of the ALTER DATABASE statement, or enlarge the log file by using the MODIFY FILE clause of the ALTER DATABASE statement, specifying the SIZE and MAXSIZE syntax. Adding an additional log file allows the existing log to grow.

Related Topics

ALTER DATABASE

Errors 9000-9999

Expanding the Database

Insufficient Disk Space

sp_attach_db

sp_detach_db


Error 17050

Severity Level 16
Message Text

initerrlog: Could not open error log file '%1'. Operating system error = %2.

Explanation

When installing Microsoft® SQL Server™ on an NTFS partition, make sure that the NTFS file permissions allow read/write access. Otherwise, this error message may appear in the Microsoft Windows NT® application log (for each installation attempt).

Action

Ensure that the NTFS file permissions allow read/write access. In addition, the SYSTEM account should have full-control rights to the computer. It is recommended that everyone using the computer have full-control rights, but that the NTFS partition not be shared.

Related Topics

Errors 17000 - 17999

Troubleshooting the Operating System


Error 17809

Severity Level 10
Message Text

Could not connect. The maximum number of '%1!ld!' configured user connections are already connected. The system administrator can change the maximum to a higher value using sp_configure.

Explanation

This error results when all configured user connections are in use and a request to create another Microsoft® SQL Server™ process occurs. SQL Server is not configured with enough user connections to support all requests. There is one process slot structure (PSS) for each configured user connection.

Action

Use the sp_configure system procedure to increase the number of user connections:

  1. Set the new number for user connections. Type:
    sp_configure 'user connections', new_number
GO
  2. Instruct SQL Server to accept the values by using the RECONFIGURE statement:
    RECONFIGURE
GO
  3. Restart SQL Server to activate the changes.

Depending on the exact configuration of your SQL Server installation, each user connection requires 37 KB of memory, whether or not it is in use. Gradually increase the number of user connections until this error no longer occurs. When you change the user connections parameter, you may need to increase the memory parameter.

Related Topics

Setting Configuration Options

sp_configure


Error 17824 (Open Data Services)

Severity Level 16
Message Text

Could not write to ListenOn connection '%1!hs!', loginname '%2!ls!', hostname '%3!ls!'. Connection closed.

Explanation

Usually indicates that the specified client disconnected.

Action

Inspect the Microsoft® Windows NT® Event Viewer system and application logs for information that may indicate whether or not the problem is related to the server network protocol, network card, or system configuration. Review the Microsoft® SQL Server™-specific entries in the application log or the SQL Server error log for relevant network-related errors that may occur in conjunction with this error. If this review does not provide enough information to resolve the problem, special network monitoring tools and a review of the client's configuration may be needed.

If the problem persists, contact your primary network support provider for assistance.

Related Topics

Reporting Errors to Your Primary Support Provider

Viewing Error Logs


Error 18456

Severity Level 14
Message Text

Login failed for user '%ls'.

Explanation

You do not have permission to log in to the server.

Action

Contact a member of the sysadmin fixed server role to request login permission.

Related Topics

Logins

Managing Security


Error 18458

Severity Level 14
Message Text

Login failed. The maximum simultaneous user count of %d licenses for this server has been exceeded. Additional licenses should be obtained and registered through the Licensing application in the Windows NT Control Panel.

Explanation

This error occurs when the server is set for Per Server licensing and the number of attempted client connections exceeds the number of Client Access Licenses for this server.

Action

Obtain additional Client Access Licenses or reduce the number of simultaneous client connection attempts.

Related Topics

Errors 18000 - 18999


Error 18459

Level 14
Message Text

Login failed. The maximum workstation licensing limit for SQL Server access has been exceeded.

Explanation

This error occurs when the server is set for Per Seat licensing and a connection is attempted from a client computer that does not have a Client Access License.

Action

Obtain a Client Access License for the client computer.

Related Topics

SQL Server 7.0 Databases on the Desktop

SQL Server 7.0 on Windows 95/98

SQL Server Editions


Read/Write Error

Message Text

kernel: operating system error %d (%s) encountered

Explanation

Microsoft® SQL Server™ failed to read from or write to the specified location on disk. This failure is usually a result of a physical disk problem like a bad sector on the disk drive or a failure of the disk drive or controller.

Action

Identify the device with the problem by selecting the row from sysfiles that has the same disk name indicated in the error message:

USE master
GO
SELECT name, filename
FROM master..sysfiles
GO

The output from this query should provide the physical name of the damaged disk. Examine the disk as soon as possible and correct any problems. After the disk drive or controller problem is resolved, restore from a backup, if available. If no backup is available, execute DBCC CHECKDB with the REPAIR_DATA_LOSS clause to deallocate the damaged pages from the database.

Warning Using the REPAIR_ALLOW_DATA_LOSS clause of DBCC CHECKDB may cause a loss of data if the disk damage was to a data or text page. If the hardware problem is not corrected properly before executing DBCC CHECKDB, the damaged pages will be reallocated and this problem will continue.

After executing DBCC CHECKDB with the REPAIR_ALLOW_DATA_LOSS clause, back up the repaired data, fix the hardware errors, and reload the previously backed up data.

Related Topics

DBCC CHECKDB

sysfiles


Server Is Unnamed

Message Text

server: server is unnamed

Explanation

This informational message is displayed during Microsoft® SQL Server™ startup if the SQL Server installation has not been given a name using the sp_addserver system procedure. The server name referred to here is stored in the sysservers system table as well as in the @@SERVERNAME function. This name is used primarily for managing server-to-server communication and does not absolutely need to match the computer name of the server (but it usually should, for ease of use of replication and other multiple server actions).

Action

No action is required for this message. The system administrator can prevent this message by assigning a name to the server using the sp_addserver procedure, as follows:

sp_addserver sql_server_name, local

(Under Microsoft Windows NT®, the Setup program automatically gives SQL Server the same name as the server computer.)

The @@SERVERNAME function will not reflect the name until SQL Server is restarted. Subsequently, each time SQL Server is started, the new name is displayed. For example, if the SQL Server is named MYSERVER, the message would read:

server: server name is 'MYSERVER'

Although the server name is used during server-to-server communications, specifying a name does not, in itself, facilitate this communication, and therefore does not represent a security risk. Naming all servers makes the SQL Server error logs easy to identify because the server name is contained within each log.

Related Topics

@@SERVERNAME

sp_addserver

sysservers


Error Log Messages

In reviewing the error log, you may see one or more of these messages.

Error message text | Explanation
Failed to obtain TransactionDispenserInterface: XACT_E_TMNOTAVAILABLE | This message is an informational error message indicating that the Microsoft Distributed Transaction Coordinator (MS DTC) service is either currently not running on the server, or is currently unavailable. For more information about MS DTC, see your Microsoft Distributed Transaction Coordinator documentation.
Warning: Server cursor memory usage: %d pages. If this message repeats, see the Error Log Messages topic in Troubleshooting. For example:

Warning: Server cursor memory usage: 531 pages. If this message repeats, see the Error Log Messages topic in Troubleshooting.

Either too many cursors have been created and left open, or have not been deallocated. It is recommended that a cursor be closed and deallocated as soon as it is no longer needed. For more information, see Cursors.

In time-critical situations, the system administrator may need to terminate those connections that have not been closing or deallocating cursors using KILL.
Warning: SQL cache memory usage: %d (pages). If this condition persists, see the Error Log Messages topic in Troubleshooting. The SQL Server cache consumes memory and holds ad hoc and prepared SQL text. This message occurs if the SQL Server cache exceeds a certain number of pages of server memory. For example, this error occurs if one or more clients are preparing large numbers of SQL statements without performing corresponding unprepare operations. This lack of corresponding unprepare operations can be due to poor application design, an application bug, or repeated creation of prepared SQL text.

This message will be printed again if server memory changes significantly and if the memory consumption of the SQL Server cache remains high.

Either warn the suspected clients that server memory is at a low level, or terminate suspected connections using KILL.

Related Topics

KILL

Troubleshooting the SQL Server ODBC Driver


MAPI Error Messages

These MAPI error values are used by SQL Mail.

MAPI Constant | Description
MAPI_USER_ABORT | User abort.
MAPI_E_FAILURE | General MAPI failure.
MAPI_E_LOGIN_FAILURE | MAPI login failure.
MAPI_E_DISK_FULL | Disk full.
MAPI_E_INSUFFICIENT_MEMORY | Insufficient memory.
MAPI_E_ACCESS_DENIED | Access denied
MAPI_E_TOO_MANY_SESSIONS | Too many sessions.
MAPI_E_TOO_MANY_FILES | Too many files were specified.
MAPI_E_TOO_MANY_RECIPIENTS | Too many recipients were specified.
MAPI_E_ATTACHMENT_NOT_FOUND | A specified attachment was not found.
MAPI_E_ATTACHMENT_OPEN_FAILURE | Attachment open failure.
MAPI_E_ATTACHMENT_WRITE_FAILURE | Attachment write failure.
MAPI_E_UNKNOWN_RECIPIENT | Unknown recipient: Parameter '%s', recipient '%s'
MAPI_E_BAD_RECIPTYPE | Bad recipient type.
MAPI_E_NO_MESSAGES | No messages.
MAPI_E_INVALID_MESSAGE | Invalid message.
MAPI_E_TEXT_TOO_LARGE | Text too large.
MAPI_E_INVALID_SESSION | Invalid session.
MAPI_E_TYPE_NOT_SUPPORTED | Type not supported.
MAPI_E_AMBIGUOUS_RECIPIENT | A recipient was specified ambiguously.
MAPI_E_MESSAGE_IN_USE | Message in use.
MAPI_E_NETWORK_FAILURE | Network failure.
MAPI_E_INVALID_EDITFIELDS | Invalid edit fields.
MAPI_E_INVALID_RECIPS | Invalid recipients.
MAPI_E_NOT_SUPPORTED | Not supported.

For more information, see SQL Mail topics in SQL Server Books Online for SQL Server 7.0.

Related Topics

Help with SQL Mail


DB-Library Error Messages

This topic describes all DB-Library error messages and severity levels. The information in this topic is divided into two tables. The following table lists the errors alphabetically, along with their severities. The table under DB-Library Error Severities summarizes the error severity levels. Number values corresponding to the errors are passed to the currently installed, user-supplied error handler. For information about creating error handlers, see dberrhandle in SQL Server Books Online for SQL Server 7.0. To access these error definitions, include the Sqlfront.h and Sqldb.h header files in your program.

The following error values are defined in the Sqlfront.h header file. Errors with a severity of EXCOMM also have a network-related error message appended to the dberrstr value. In addition, EXCOMM errors have network-specific error information in oserr and oserrstr.

Error number | Error/ Error severity | Description
10000 | SQLEMEM EXRESOURCE | Unable to allocate sufficient memory.
10001 | SQLENULL EXPROGRAM | NULL DBPROCESS pointer encountered.
10002 | SQLENLOG EXCONSISTENCY | NULL LOGINREC pointer encountered.
10003 | SQLEPWD EXUSER | Login incorrect.
10004 | SQLECONN EXCOMM | Unable to connect: SQL Server is unavailable or does not exist.
10005 | SQLEDDNE EXINFO | DBPROCESS is dead or not enabled.
10006 | SQLENULLO EXCONSISTENCY | Attempt to login with NULL LOGINREC.
10007 | SQLESMSG EXSERVER | General SQL Server error: Check messages from SQL Server.
10008 (DB-Library) | SQLEBTOK EXCOMM | Bad token from SQL Server: Datastream processing out of synchronization.
10009 | SQLENSPE EXPROGRAM | General nonspecific DB-Library error.
10010 | SQLEREAD EXCOMM | Read from SQL Server failed.
10011 | SQLECNOR EXPROGRAM | Column number out of range.
10012 | SQLETSIT EXINFO | Attempt to call dbtsput with an invalid timestamp.
10013 | SQLEPARM EXCONSISTENCY | Invalid parameter in DB-Library function reference.
10014 | SQLEAUTN EXPROGRAM | Attempt to update the timestamp of a table with no timestamp column.
10015 | SQLECOFL EXCONVERSION | Data conversion resulted in overflow.
10016 | SQLERDCN EXCONVERSION | Requested data conversion does not exist.
10017 | SQLEICN EXPROGRAM | Invalid value for computeid or invalid compute column number.
10019 | SQLENTXT EXPROGRAM | Attempt to get text point/timestamp from a nontext column.
10020 | SQLEDNTI EXPROGRAM | Attempt to use dbtxtsput to put a new text timestamp into a column whose data type is neither SQLTEXT nor SQLIMAGE.
10021 | SQLETMTD EXPROGRAM | Attempt to send too much TEXT data through dbmoretext.
10022 | SQLEASEC EXPROGRAM | Attempt to send an empty command buffer to the SQL Server.
10023 | SQLENTLL EXUSER | Name too long for LOGINREC field.
10024 (DB-Library) | SQLETIME EXTIME | SQL Server connection timed out.
10026 | SQLEMODE EXCOMM | Network connection not in correct mode - invalid SQL Server connection.
10027 | SQLEOOB EXCOMM | Error in sending out-of-band data to SQL Server.
10028 | SQLEITIM EXPROGRAM | Illegal timeout value specified.
10029 | SQLEDBPS EXRESOURCE | Maximum number of DBPROCESSes already allocated.
10030 | SQLEIOPT EXPROGRAM | Attempt to use invalid dboption.
10031 | SQLEASNL EXPROGRAM | Attempt to set fields in a null LOGINREC.
10032 | SQLEASUL EXPROGRAM | Attempt to set unknown LOGINREC field.
10033 | SQLENPRM EXPROGRAM | NULL parameter not allowed for this dboption.
10034 | SQLEDBOP EXPROGRAM | Invalid or out of range dbn parameter.
10035 | SQLENSIP EXPROGRAM | Negative starting index passed to dbstrcpy.
10036 | SQLECNULL EXPROGRAM | NULL destination variable not allowed.
10037 | SQLESEOF EXCOMM | Unexpected EOF from SQL Server.
10038 | SQLERPND EXPROGRAM | Attempt to initiate a new SQL Server operation with results pending.
10039 | SQLECSYN EXCONVERSION | Attempt to convert data stopped by syntax error in source field.
10040 | SQLENONET EXCOMM | DB-Library network communications layer not loaded.
10041 | SQLEBTYP EXPROGRAM | Unknown bind type passed to DB-Library function.
10042 | SQLEABNC EXPROGRAM | Attempt to bind to a nonexistent column.
10043 | SQLEABMT EXPROGRAM | User attempted a dbbind with mismatched column and variable types.
10044 | SQLEABNP EXPROGRAM | Attempt to bind using NULL pointers.
10045 | SQLEBNCR EXPROGRAM | Attempt to bind user variable to a nonexistent compute row.
10046 | SQLEAAMT EXPROGRAM | User attempted a dbaltbind with mismatched column and variable types.
10047 | SQLENXID EXNONFATAL | The server did not grant us a distributed-transaction ID.
10048 | SQLEIFNB EXPROGRAM | Illegal field number passed to bcp_control.
10049 | SQLEKBCO EXINFO | 1000 rows successfully bulk copied to host file.
10050 | SQLEBBCI EXINFO | Batch successfully bulk copied to SQL Server.
10051 | SQLEKBCI EXINFO | 1000 rows sent to SQL Server.
10052 | SQLEBCWE EXNONFATAL | I/O error while writing bcp datafile.
10053 (DB-Library) | SQLEBCNN EXUSER | Attempt to bulk copy a null value into a server column that does not accept null values.
10054 (DB-Library) | SQLEBCOR EXCONSISTENCY | Attempt to bulk copy an oversized row to SQL Server.
10055 | SQLEBCPI EXPROGRAM | Call bcp_init before any other bcp routines.
10056 | SQLEBCPN EXPROGRAM | Use bcp_bind, bcp_collen, and bcp_colptr only after calling bcp_init with the copy direction set to DB_IN.
10057 | SQLEBCPB EXPROGRAM | Do not use bcp_bind after bcp_init has been passed a non-null input filename.
10058 | SQLEVDPT EXUSER | For bulk copy, all variable-length data must have either a length-prefix or a terminator specified.
10059 | SQLEBIVI EXPROGRAM | Use bcp_columns and bcp_colfmt only after bcp_init has been passed a valid input file.
10060 | SQLEBCBC EXPROGRAM | Call bcp_columns before bcp_colfmt.
10061 | SQLEBCFO EXUSER | Host files must contain at least one column: bcp.
10062 | SQLEBCVH EXPROGRAM | Call bcp_exec only after bcp_init has been passed a valid host file.
10063 | SQLEBCUO EXRESOURCE | Unable to open host datafile: bcp.
10064 | SQLEBUOE EXRESOURCE | Unable to open error file: bcp.
10065 | SQLEBWEF EXNONFATAL | I/O error while writing bcp error file.
10066 | SQLEBTMT EXPROGRAM | Attempt to send too much text data with bcp_moretext.
10067 | SQLEBEOF EXNONFATAL | Unexpected EOF encountered in bcp datafile.
10068 | SQLEBCSI EXCONSISTENCY | Host-file columns may be skipped only when copying into the server.
10069 | SQLEPNUL EXCONSISTENCY | NULL program pointer encountered.
10070 | SQLEBSKERR EXCONSISTENCY | Cannot seek in data file.
10071 | SQLEBDIO EXPROGRAM | Bad bulk-copy direction.
10072 | SQLEBCNT EXUSER | Attempt to use bulk copy with a nonexistent server table.
10073 | SQLEMDBP EXPROGRAM | Attempt to set maximum number of DPPROCESS lower than 1.
10075 | SQLCRSINV EXPROGRAM | Invalid cursor statement.
10076 | SQLCRSCMD EXPROGRAM | Attempt to call cursor functions when there are commands waiting to be executed.
10077 | SQLCRSNOIND EXINFO | One of the tables involved in the cursor statement does not have a unique index.
10078 | SQLCRSDIS EXPROGRAM | Cursor statement contains one of the disallowed phrases COMPUTE, UNION, FOR BROWSE, or SELECT INTO.
10079 | SQLCRSAGR EXPROGRAM | Aggregate functions are not allowed in a cursor statement.
10080 | SQLCRSORD EXPROGRAM | Only fully keyset driven cursors can have ORDER BY, GROUP BY, or HAVING PHRASES.
10081 | SQLCRSMEM EXPROGRAM | Keyset or window scroll size exceeds the memory limitations of this machine.
10082 | SQLCRSBSKEY EXPROGRAM | Keyset cannot be scrolled backward in mixed cursors with a previous fetch type.
10083 | SQLCRSNORES EXINFO | Cursor statement generated no results.
10084 | SQLCRSVIEW EXPROGRAM | A view cannot be joined with another table or a view in a cursor statement.
10085 | SQLCRSBUFR EXPROGRAM | Row buffering should not be turned on when using cursor functions.
10086 | SQLCRSFROWN EXINFO | Row number to be fetched is outside valid range.
10087 | SQLCRSBROL EXPROGRAM | Backward scrolling cannot be used in a forward scrolling cursor.
10088 | SQLCRSFRAND EXPROGRAM | Fetch types RANDOM and RELATIVE can only be used within the keyset of keyset driven cursors.
10089 | SQLCRSFLAST EXPROGRAM | Fetch type LAST requires fully keyset driven cursors.
10090 | SQLCRSRO EXPROGRAM | Data locking or modifications cannot be made in a READONLY cursor.
10091 | SQLCRSTAB EXPROGRAM | Table name must be determined in operations involving data locking or modifications.
10092 | SQLCRSUPDTAB EXPROGRAM | Update or insert operations using bind variables require single table cursors.
10093 | SQLCRSUPDNB EXPROGRAM | Update or insert operations cannot use bind variables when binding type is NOBIND.
10094 | SQLCRSVIIND EXPROGRAM | The view used in the cursor statement does not include all the unique index columns of the underlying tables.
10095 | SQLCRSNOUPD EXINFO | Update or delete operation did not affect any rows.
10096 | SQLCRSOS2 EXPROGRAM | Cursors are not supported for this server.
10097 | SQLEBCSA EXPROGRAM | The BCP hostfile %s contains only %ld rows. Skipping all of these rows is not allowed.
10098 | SQLCRSRO EXPROGRAM | Data locking or modifications cannot be made in a READONLY cursor.
10099 | SQLEBCNE EXPROGRAM | The table %s contains only %ld rows. Copying up to row %ld is not possible.
10100 | SQLEBCSK EXPROGRAM | The table %s contains only %ld rows. Skipping all of these rows is not allowed.
10101 | SQLEUVBF EXPROGRAM | Attempt to read unknown version of bcp format file.
10102 | SQLEBIHC EXPROGRAM | Incorrect host-column number found in bcp format file.
10103 | SQLEBWFF EXRESOURCE | I/O error while reading bcp format file.
10104 | SQLNUMVAL EXPROGRAM | The data stored in the DBNUMERIC/DBDECIMAL structure is invalid.
10105 | SQLEOLDVR EXPROGRAM | The SQL Server's TDS is obsolete with this version of DB-Library.

Related Topics

Finding Supplemental Error Message Information


DB-Library Error Severities

The following table lists all error severities with their numerical equivalents and an explanation of the type of error. When an error occurs or when a message is sent, these numerical equivalents are passed to the currently installed, user-supplied error handler.

Error severity levels are defined in the Sqlfront.h header file. Your program must include Sqlfront.h if it refers to these severity levels.

Error severity | Severity number | Description
EXINFO | 1 | Informational, nonerror.
EXUSER | 2 | User error.
EXNONFATAL | 3 | Nonfatal error.
EXCONVERSION | 4 | Error in DB-Library data conversion.
EXSERVER | 5 | The server has returned an error flag.
EXTIME | 6 | Timeout period exceeded while waiting for a response from the server -- the DBPROCESS is still alive.
EXPROGRAM | 7 | Coding error in user program.
EXRESOURCE | 8 | Running out of resources -- the DBPROCESS may be dead.
EXCOMM | 9 | Failure in communication with server -- the DBPROCESS is dead.
EXFATAL | 10 | Fatal error -- the DBPROCESS is dead.
EXCONSISTENCY | 11 | Internal software error -- notify your primary support provider.

Related Topics

Reporting Errors to Your Primary Support Provider


Error 10008 (DB-Library)

Severity Level 9
Message Text

Bad token from SQL Server: Datastream processing out of synchronization.

Explanation

This error occurs when DB-Library cannot interpret the Tabular Data Stream (TDS) sent from Microsoft® SQL Server™. A DB-Library application communicates with SQL Server over the network using a TDS. The TDS is a specification for the communication of data and other messages between SQL Server and the DB-Library client. The network libraries used by SQL Server and the DB-Library client provide the interface for the transmission of TDS over a particular network protocol. The network protocol used is independent from the TDS as long as there is an appropriate interface network library that supports the network protocol, whether it is a named pipe connection or a socket connection. Each DB-Library application parses this TDS automatically to extract useful information (for example, query result rows) or to generate requests of, or responses to, SQL Server in a format that is mutually understood.

There are two main causes for this error:

  • The data sent by SQL Server over the network named pipe or socket has been corrupted. This is usually caused by a network problem involving either network hardware or software.

  • The network can generate errors or messages unknown to DB-Library; as a consequence, this error can be generated.
Action

Inspect the Windows NT Event Viewer system and application logs. These logs may provide information that indicates whether the problem is related to the server network protocol, the network card, or the system configuration. Review the SQL Server-specific entries in the application log or the SQL Server error log for relevant network-related errors that correspond in time with the occurrence of the 10008 error seen on the client. If this review does not provide enough information to resolve the problem, special network monitoring tools and a review of the client's configuration may be necessary.

If the problem persists, contact your primary network support provider for assistance.

Programmers using the SQL Server Programmer's Toolkit (for DB-Library) can handle error 10008 by adding conditional statements to test for the occurrence of this error. When error 10008 is seen in the DB-Library error handler, additional processing can include closing the current DBPROCESS connection, opening a new connection, and then resending the query.

Related Topics

Programming DB-Library for C

Reporting Errors to Your Primary Support Provider


Error 10024 (DB-Library)

Severity Level 6
Message Text

SQL Server connection timed out.

Explanation

This error message is returned from DB-Library when the query time-out setting for the application's connection to Microsoft® SQL Server™ is too low. The query is terminated when it takes longer to complete than the time allocated.

Action

Check the application for configuration settings, and increase the query time-out setting. If this is a custom application, you can adjust the query time-out setting by using the dbsettime() function.

Related Topics

Programming DB-Library for C


Error 10053 (DB-Library)

Severity Level 2
Message Text

Attempt to bulk copy a null value into a server column that does not accept null values.

Explanation

This error occurs when you attempt to bulk copy a null value into a table column that does not accept null values. This usually occurs when the column is changed from NULL to NOT NULL after previous bulk copies.

Action

If the source file being bulk copied is character data, the file can be edited and the column value changed to an appropriate value for the column definition. You can also change the current definition of the table or create a separate table with a column definition that allows null values.

Related Topics

Programming DB-Library for C


Error 10054 (DB-Library)

Severity Level 11
Message Text

Attempt to bulk copy an oversized row to SQL Server.

Explanation

This error occurs during a bulk copy operation when a row or rows in the source data file do not match the row as defined for the destination database table. It can occur due to a missing end-of-line marker. It can also occur if there are more column delimiters in the source data file than currently exist in the destination database table, or if the source data file is corrupt.

Action

Verify that the source data file matches the column definitions for the database table. Or, create a new table to match the current data file, bulk copy the data into the database, and then manipulate the data using Transact-SQL statements.

You can either manipulate the source data file or create a format file to facilitate the data transfer. You can manipulate character-based data files by using a text editing tool that accommodates the data file size and will not add special hidden characters during a save operation. The editing tool can then be used to manipulate the source data file by adding or deleting characters as necessary so that the source data file matches the table definition. You can also create a format file. The generated format file can be manipulated by a text editing tool and changed so that character positions/columns in the source data file are ignored. Native format files are more difficult to manipulate.

The alternatives to manipulating the native format source data file and/or a format file are limited due to the storage of data types other than character in a binary type format. It can be difficult to manipulate this file type with any editing tool, and it is more difficult to generate and manipulate a format file. You can use the -F or the -L command-line flags to specify the first and last row in the source data file that is to be bulk copied into SQL Server. If the source data file contains a few oversized rows, these flags can be used to bulk copy up to the oversized row followed by a bulk copy operation from the row following the oversized row to the end of the data file.

If you are unable to resolve this error, contact your primary support provider for assistance.

Related Topics

bcp Utility

Programming DB-Library for C

Reporting Errors to Your Primary Support Provider


Distributed Queries Error Messages

This group of topics discusses troubleshooting tips and techniques for distributed queries against various OLE DB providers. On an error condition against an OLE DB provider, Microsoft® SQL Server™ outputs two sets of error messages:

  • Provider error messages (indicated by one or more error messages surrounded by square brackets), which are returned by the OLE DB provider.

  • SQL Server error messages.

SQL Server uses the OLE DB provider's error object and its interfaces to return the provider's error messages. If the provider does not support the error object and its interfaces for the given error context, provider error messages are not available.

The following topics describe and resolve the most commonly received SQL Server error messages related to distributed queries.

In addition to using these error message topics to resolve problems with distributed queries, use SQL Server Profiler to trace the OLE DB Errors event class. The OLE DB Errors event class outputs the OLE DB interface and method for the provider returning an error and the error code returned by the method invocation. The hexadecimal error code can be looked up in the Oledberr.h header file (located in the \DevTools\Include directory of the target SQL Server installation directory, by default, C:\Mssql7) to determine the meaning of the error code, by default, the OLE DB Errors event class does not show up in SQL Server Profiler. For more information about seeing the OLE DB Errors event class and other advanced errors using SQL Server Profiler, see Creating Traces in SQL Server Books Online for SQL Server 7.0.

This table lists all distributed queries error messages.

Error | Severity | Description
7303 | 16 | Could not initialize data source object of OLE DB provider '%ls'. %ls.
7306 | 16 | Could not open table '%ls' from OLE DB provider '%ls'. %ls.
7314 | 16 | OLE DB provider '%ls' does not contain table '%ls'.
7321 | 16 | An error occurred while preparing a query for execution against OLE DB provider '%ls'. %ls.
7356 | 16 | OLE DB provider '%ls' supplied inconsistent metadata for a column. Metadata information was changed at execution time.
7357 | 16 | Could not process object '%ls'. The OLE DB provider '%ls' indicates that the object has no columns.
7391 | 16 | The operation could not be performed because the OLE DB provider '%ls' does not support distributed transactions.
7392 | 16 | Could not start a transaction for OLE DB provider '%ls'.
7399 | 16 | OLE DB provider '%ls' reported an error. %ls.
7403 | 16 | Could not locate registry entry for OLE DB provider '%ls'.
7413 | 16 | Could not perform a Windows NT authenticated login because delegation is not available.
8114 | 16 | Error converting data type %ls to %ls.
8501 | 16 | MS DTC on server '%.*ls' is unavailable.


Embedded SQL for C Error Messages

When developing and running Embedded SQL for C (ESQL/C) programs, you will see different status and error messages. All message numbers that are returned by ESQL/C are negative numbers.

The messages in the following table are generated by ESQL/C. Because the messages are not generated by Microsoft® SQL Server™, they do not appear in the sysmessages table.

Message number | Run time/ compile time | Description
4998 | C | Attempt to connect to the specified database sever failed.
19031 | C | Unable to open bindfile.
19051 | C | Too many sections.
19101 | R | Statement too long.
19103 | R | Illegal %s value %s. Non-numeric %s value %s. (Invalid number for the timeout value.)
19104 | R/C | Incorrect SQL statement syntax.
19199 | C | ESQL keyword(s) detected in PREPARE statement.
19306 | C | Host variable used but not declared.
19313 | R | Too few host variables.
19324 | C | Host variable may not be used in this context.
19408 | R | Invalid SQL data type for SQL_TYP_DECIMAL.
19413 | R | Data overflow occurred during decimal data conversion.
19422 | R | Unknown SQL Server data type.
19423 | R | Invalid destination data type.
19501 | R | No cursor declared.
19505 | C | Duplicate cursor name: %s.
19508 | R | Cursor is not positioned on a row.
19514 | R | Cursor is not prepared.
19517 | R | Cursor open attempted for non-SELECT prepared statement.
19521 | R | Open cursor failure for section %d of plans.
19523 | R | Failure to locate/close cursor. Section %d, plan %s.
19524 | R | Table for this cursor not updatable.
19525 | R | Attempt to fetch on unopened cursor.
19526 | R | No access plan for this cursor.
19527 | R | Could not get section for this cursor.
19528 | R | Connection for section %d of plan %s has NULL DBPROCESS.
19701 | R | NULL connection name.
 |  | Connection %s not found.
19702 | R | Connection name not found.
 |  | Attempt to close nonexistent connection.
19703 | R | Failed to get DBPROCESS. Autoconnect failure.
19706 | R | Login failure in section %d.
19707 | R | Duplicate connection name.
19822 | R | Improperly initialized user SQLDA.
19911 | C | The SQL data type specified for a host variable is invalid.
19913 | C | The token identifier has already been used.
19917 | C | Invalid or incorrect option to sqlainit().
19946 | C | Cursor %s not declared.
19953 | C | Invalid call type.
19955 | R | Text not found in %s section %u.
19956 | R | Access plan section or statement text not found.
19957 | R | Access plan or statement text not found.
19994 | R | Can't run next BEGIN DECLARE sections. Statement ignored.
19995 | R | END DECLARE encountered without preceding BEGIN DECLARE statement. Statement ignored.
19999 | C | An internal error occurred.

Related Topics

Programming Embedded SQL for C


SQL Server Enterprise Manager Error Messages

This section contains explanations and corrective actions for many of the error messages related to SQL Server Enterprise Manager.


(+) operator ignored.

Message Text

(+) operator ignored.

Explanation

The Oracle outer join operator that you entered is not appropriate and will be ignored.

Related Topics

Implementing Snapshot or Transactional Replication to Heterogeneous Data Sources

Join Fundamentals

Transact-SQL Joins


(+) table reference may not be joined with more than one table.

Message Text

(+) table reference may not be joined with more than one table.

Explanation

There is an error in the way that you are attempting to join a table reference. This table reference can only be joined with one other table.

Related Topics

Join Fundamentals

Transact-SQL Joins


<0s> in expression is not part of the query.

Message Text

<0s> in expression is not part of the query.

Explanation

An expression within your query is not properly formed. This often occurs when the criteria expression that you entered doesn't match the available columns for the input sources.

Action

Clear the value out and then type in a column reference that matches your input sources.

Related Topics

Expressions

Using Operators in Expressions


<0s> is not supported.

Message Text

<0s> is not supported.

Explanation

The syntax you entered is valid but is not supported visually by SQL Server Enterprise Manager.

Action

Be sure to verify your syntax before saving.

Related Topics

Query Fundamentals


<0s> may not be used in this query type.

Message Text

<0s> may not be used in this query type.

Explanation

The action you are attempting is not permitted with the type of query you have selected.

Action

Verify the syntax in your query or change the query type.

Related Topics

Query Fundamentals


<0s> support is not available in this server version.

Message Text

<0s> support is not available in this server version.

Explanation

You have attempted to use a feature that isn't supported by your server software.

Related Topics

What's New in SQL Server 7.0


A blank constraint expression is not allowed.

Message Text

A blank constraint expression is not allowed.

Action

You must enter a constraint in the Constraints Expression dialog box before continuing to define properties for your table.

Related Topics

Creating and Modifying UNIQUE Constraints


A number of rows were affected.

Message Text

A number of rows were affected.

Explanation

The query executed successfully. The specified rows were affected by a make table process.


A pair of matching columns is required to create a relationship.

Message Text

A pair of matching columns is required to create a relationship.

Explanation

You must select matching columns from both tables participating in a foreign key relationship. The columns you have selected don't match, so they cannot be related.

Action

Choose two columns that match, and then attempt to establish the relationship. In order to match, there must be the same number of columns and each partner in a pair of columns must have a comparable data type.

Related Topics

Creating and Modifying PRIMARY KEY Constraints


A primary key can't be created on column '<0s>' because it allows null values.

Message Text

A primary key can't be created on column '<0s>' because it allows null values.

Explanation

The primary key is used to relate the table to foreign keys in other tables. All columns participating in a primary key must contain defined values other than NULL.

Action

To create a primary key on the selected column, first clear the Allow Nulls check box for the column.

Related Topics

Creating and Modifying PRIMARY KEY Constraints

Primary Key Constraints


A primary key or index cannot be created on columns with a datatype of <0s>.

Message Text

A primary key or index cannot be created on columns with a datatype of <0s>.

Explanation

A column's data type defines what kind of information can be stored in a column. Some data types such as TEXT or Image cannot be used in an index because servers will not allow indexes on these types of data.

Related Topics

Creating and Modifying PRIMARY KEY Constraints

Table Indexes


A primary key or index cannot have more than <0d> columns.

Message Text

A primary key or index cannot have more than <0d> columns.

Explanation

Microsoft® SQL Server™ does not allow more than 16 columns in an index. Because a primary key has an associated index, there can be no more than 16 columns in a primary key.

Related Topics

Creating and Modifying PRIMARY KEY Constraints

Table Indexes


A primary key or unique constraint must be defined for table '<0s>' before it can participate in a relationship.

Message Text

A primary key or unique constraint must be defined for table '<0s>' before it can participate in a relationship.

Explanation

In order to create a foreign key relationship, at least one of the two tables must have a primary key or unique constraint defined.

Action

To create the relationship you are attempting to create, first create a primary key for one of the tables.

Related Topics

Creating and Modifying PRIMARY KEY Constraints

Primary Key Constraints


A relationship cannot contain more than '<0d>' columns.

Message Text

A relationship cannot contain more than '<0d>' columns.

Action

Select fewer than 16 columns when defining the foreign key relationship.

Related Topics

Creating and Modifying PRIMARY KEY Constraints

Primary Key Constraints


Ambiguous outer join (+) operator.

Message Text

Ambiguous outer join (+) operator.

Explanation

SQL Server Enterprise Manager requires that you follow specific rules when designing queries. SQL Server Enterprise Manager is unable to process the outer join operator you have entered.

Action

Check the syntax in your Transact-SQL statement.

Related Topics

Using Outer Joins


An index already exists for table '<0s>' with the columns '<1s>'.

Message Text

An index already exists for table '<0s>' with the columns '<1s>'.

Explanation

Oracle only allows one index for each ordered set of columns.

Action

As a rule, you should create an index only if the data in the selected columns will be queried frequently. Indexes take up disk space and can slow the adding, deleting, and updating of rows.

In most cases, the benefits of indexes will far outweigh the performance overhead, but if your application updates data very frequently, or if you have disk space constraints, you might also want to limit the number of indexes.

Related Topics

Indexes

Table Indexes


An index can't exist on a blank column.

Message Text

An index can't exist on a blank column.

Explanation

An index must contain at least one column, and that column must contain unique data values if you are creating a unique index. The column names selected must be entered under Column name in the Selected index box.

Related Topics

Indexes

Modifying Column Properties

Table Indexes


Appropriate SQL cannot be generated.

Message Text

Appropriate SQL cannot be generated.

Explanation

SQL Server Enterprise Manager requires that you follow specific rules when designing queries. This error may appear if you have used the diagram or grid pane to create a query that cannot be expressed in a Transact-SQL statement.

Action

Verify the query options you have selected.

Related Topics

Filtering Rows with WHERE and HAVING

Query Fundamentals


Are you sure you want to delete the current selection from your database?

Message Text

Are you sure you want to delete the current selection from your database?

Explanation

This will permanently delete the table and all its data from your database.

Related Topics

Deleting a Table from a Database Diagram and the Database


Are you sure you want to delete the selected relationship from your database?

Message Text

Are you sure you want to delete the selected relationship from your database?

Explanation

Answering YES will delete the selected relationship.

Related Topics

Database Diagrams

Deleting Key Relationships Using Database Diagrams


Are you sure you want to permanently delete table '<0s>' from your database?

Message Text

Are you sure you want to permanently delete table '<0s>' from your database?

Explanation

This will permanently delete the table and all its data from the database.

Related Topics

Deleting a Table from a Database Diagram and the Database


Are you sure you want to permanently delete the selected tables from your database?

Message Text

Are you sure you want to permanently delete the selected tables from your database?

Explanation

The table and all its data will be deleted from the database.

Related Topics

Deleting a Table from a Database Diagram and the Database


Are you sure you want to remove the selected table from the diagram?

Message Text

Are you sure you want to remove the selected table from the diagram?

Explanation

This will remove the table from the diagram but leave the table in the database.

Related Topics

Removing a Table from a Database Diagram

Working with Database Objects


Are you sure you want to remove the selected tables from the diagram?

Message Text

Are you sure you want to remove the selected tables from the diagram?

Explanation

This will remove the table from the diagram, but not from your database.

Related Topics

Removing a Table from a Database Diagram

Working with Database Objects


Bad top value.

Message Text

Bad top value.

Explanation

The top value in your query is invalid or out of range. The value for the top clause must be an integer value if the PERCENT clause is not used.

Action

To use the PERCENT clause, just type in the word PERCENT after the numeric value in the cell.

Related Topics

Limiting Result Sets Using TOP and PERCENT

Using the Select List


Both sides of a relationship must have the same number of columns.

Message Text

Both sides of a relationship must have the same number of columns.

Explanation

When you create a composite foreign key relationship, both sides of the relationship must have the same number of columns.

Action

Make sure the number of columns you've selected matches the number of columns in the target table.

Related Topics

Database Diagrams

Creating and Modifying Foreign Key Constraints


Cannot add this expression to the select list.

Message Text

Cannot add this expression to the select list.

Explanation

There are limitations to what expressions are allowed in the select list. The expression you are trying to add may be invalid.

Action

Verify that the syntax in the expression is correct. It is possible that the type of expression is invalid.

Related Topics

Expressions

Using Operators in Expressions


Cannot assign an alias to this field.

Message Text

Cannot assign an alias to this field.

Explanation

An alias can only be created for a suitable column or table. The field you have chosen is not valid.

Action

Verify that the settings for the field are correct.

Related Topics

Assigning Result Set Column Names

Choosing Specific Columns

Using Table Aliases


Cannot convert entry to valid date/time value.

Message Text

Cannot convert entry to valid date/time value.

Explanation

SQL Server Enterprise Manager requires that you follow specific rules when designing queries.

Action

Verify that the entry is correct.

Related Topics

Changing Data

UPDATE


Cannot convert to proper type.

Message Text

Cannot convert to proper type.

Explanation

SQL Server Enterprise Manager requires that you follow specific rules when converting values. The query cannot be converted.

Action

Verify that the information in the query and the query type are appropriate.

Related Topics

Expressions

Using Functions

Using Operators in Expressions


Cannot delete rows with unknown keys.

Message Text

Cannot delete rows with unknown keys.

Explanation

The row you've attempted to delete has an unknown key. This row cannot be deleted at this time.

Related Topics

DELETE

Deleting Data


Cannot edit rows with unknown keys.

Message Text

Cannot edit rows with unknown keys.

Explanation

The row you've attempted to edit has an unknown key.

Related Topics

Changing Data

UPDATE


Cannot edit this cell.

Message Text

Cannot edit this cell.

Explanation

The cell you've selected cannot be edited. It may be the result of a calculation or part of a joined table.

Related Topics

Changing Data

UPDATE


Cannot filter this expression.

Message Text

Cannot filter this expression.

Explanation

The expression you've entered cannot be filtered. This typically occurs when the user types in a criteria against the * or a criteria against a field that is blank in the QBE. The user should only enter criteria against fields that are already in the QBE.

Related Topics

Filtering Rows with WHERE and HAVING


Cannot insert into this expression.

Message Text

Cannot insert into this expression.

Explanation

You cannot insert data into the selected expression. This function is not supported at this time.

Related Topics

Adding Data

INSERT


Cannot open encrypted <0s> <1s>.

Message Text

Cannot open encrypted <0s> <1s>.

Explanation

After a view has been encrypted and closed it can't be opened again.

Related Topics

Creating a View

View Object


Cannot update this expression.

Message Text

Cannot update this expression.

Explanation

The selected expression cannot be updated.

Related Topics

Expressions

Using Operators in Expressions


Cannot use column with IMAGE or TEXT data type in this context.

Message Text

Cannot use column with IMAGE or TEXT data type in this context.

Explanation

SQL Server Enterprise Manager requires that you follow specific rules when designing queries.

Related Topics

Filtering Rows with WHERE and HAVING

Query Fundamentals


Cannot use LONG data type in this context.

Message Text

Cannot use LONG data type in this context.

Explanation

SQL Server Enterprise Manager requires that you follow specific rules when designing queries.

Related Topics

Filtering Rows with WHERE and HAVING

Query Fundamentals


Column '<1s>' in table '<0s>' participates in index '<2s>'. Columns with a datatype of '<3s>' cannot participate in indexes or primary keys.

Message Text

Column '<1s>' in table '<0s>' participates in index '<2s>'. Columns with a datatype of '<3s>' cannot participate in indexes or primary keys.

Explanation

You have attempted to change the data type of a column that is part of an index or a primary key. Indexes and primary keys cannot be created for columns with data types such as TEXT or IMAGE.

Action

To change the data type, first remove the index or primary key.

Related Topics

Creating and Modifying PRIMARY KEY Constraints

Indexes

UNIQUE Constraints


Column list is not supported for Make Table queries.

Message Text

Column list is not supported for Make Table queries.

Explanation

SQL Server Enterprise Manager does not support inclusion of the optional column list for the Oracle Make Table query.

Action

Remove the column list and use column aliases in your select statement instead.

Related Topics

Assigning Result Set Column Names

Choosing Specific Columns


Column with (+) operator does not reference a valid table.

Message Text

Column with (+) operator does not reference a valid table.

Explanation

The operator you've used in the query column must reference a valid table. SQL Server Enterprise Manager cannot validate the table currently referenced.

Action

Verify that the table exists in the database and that SQL Server Enterprise Manager has access to it.

Related Topics

Filtering Rows with WHERE and HAVING

Using the FROM Clause


Data source alias is read only.

Message Text

Data source alias is read only.

Explanation

Read-only values cannot be edited. To use this data source, you need a write-enabled version of the data source available to SQL Server Enterprise Manager.

Related Topics

Changing Data

UPDATE


Data source base name is read only.

Message Text

Data source base name is read only.

Explanation

Read-only values cannot be edited.

Action

To use this data source, you need a write-enabled version of the data source available to SQL Server Enterprise Manager.

Related Topics

Changing Data

UPDATE


Data type error in expression.

Message Text

Data type error in expression.

Explanation

Expressions with different data types can generate errors.

Action

To work with different data types in a single expression, you need to convert to the same data type.

Related Topics

Conversion Functions

Expressions

Using Operators in Expressions


Data type mismatch - no conversion possible.

Message Text

Data type mismatch - no conversion possible.

Explanation

The selected data types cannot be converted.

Action

To work with different data types in a single expression, you need to convert to the same data type.

Related Topics

Conversion Functions

Expressions

Using Operators in Expressions


Data type mismatch - use the CONVERT function.

Message Text

Data type mismatch - use the CONVERT function.

Explanation

One of the data types must be converted before you can continue.

Action

To work with different data types in a single expression, you need to convert to the same data type.

Related Topics

Conversion Functions

Expressions

Using Operators in Expressions


DELETE statement conflicted with COLUMN REFERENCE constraint.

Message Text

DELETE statement conflicted with COLUMN REFERENCE constraint.

Explanation

A conflict occurred while your query attempted to execute. SQL Server Enterprise Manager has tried to locate the direct source of the conflict.

Action

Check the syntax of your query to attempt to resolve the conflict.

Related Topics

DELETE

Deleting Data

Expressions


Do you want to suppress further error messages telling you why records can't be pasted?

Message Text

Do you want to suppress further error messages telling you why records can't be pasted?

Explanation

If you answer Yes, you will not receive messages explaining why records cannot be pasted correctly.

Related Topics

Adding Data

INSERT


Editing this default will permanently unbind the named default.

Message Text

Editing this default will permanently unbind the named default.

Explanation

Changing from a named default to a default constraint is not allowed on Microsoft® SQL Server™.

Related Topics

Creating SQL Server Tables

Default Object


Error after function '<0s>'.

Message Text

Error after function '<0s>'.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Filtering Rows with WHERE and HAVING

Query Fundamentals


Error after predicate near '<0s>'.

Message Text

Error after predicate near '<0s>'.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Filtering Rows with WHERE and HAVING

Query Fundamentals


Error before EXISTS clause.

Message Text

Error before EXISTS clause.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Filtering Rows with WHERE and HAVING

Query Fundamentals

Subqueries with EXISTS


Error before EXISTS clause: '<0s>" not recognized.

Message Text

Error before EXISTS clause: '<0s>" not recognized.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Filtering Rows with WHERE and HAVING

Query Fundamentals

Subqueries with EXISTS


Error before FROM clause.

Message Text

Error before FROM clause.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the FROM Clause


Error following UNION operator.

Message Text

Error following UNION operator.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Combining Results with UNION

Filtering Rows with WHERE and HAVING

Query Fundamentals


Error in column list.

Message Text

Error in column list.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Assigning Result Set Column Names

Filtering Rows with WHERE and HAVING

Query Fundamentals


Error in column list: '<0s>' not recognized.

Message Text

Error in column list: '<0s>' not recognized.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Assigning Result Set Column Names

Filtering Rows with WHERE and HAVING

Query Fundamentals


Error in destination table specification.

Message Text

Error in destination table specification.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query. For best results, do not include periods in the destination table specification.

Related Topics

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the FROM Clause


Error in FROM clause near '<0s>'.

Message Text

Error in FROM clause near '<0s>'.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the FROM Clause


Error in GROUP BY clause.

Message Text

Error in GROUP BY clause.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Filtering Rows with WHERE and HAVING

Grouping Rows with GROUP BY


Error in GROUP BY clause near '<0s>'.

Message Text

Error in GROUP BY clause near '<0s>'.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Filtering Rows with WHERE and HAVING

Grouping Rows with GROUP BY


Error in HAVING clause.

Message Text

Error in HAVING clause.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Choosing Rows with the HAVING Clause

Filtering Rows with WHERE and HAVING


Error in HAVING clause near '<0s>'.

Message Text

Error in HAVING clause near '<0s>'.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Choosing Rows with the HAVING Clause

Filtering Rows with WHERE and HAVING


Error in INSERT statement.

Message Text

Error in INSERT statement.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Adding Data

Filtering Rows with WHERE and HAVING

Query Fundamentals


Error in INSERT statement: '<0s>' not recognized.

Message Text

Error in INSERT statement: '<0s>' not recognized.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Adding Data

Filtering Rows with WHERE and HAVING

Query Fundamentals


Error in join expression.

Message Text

Error in join expression.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Filtering Rows with WHERE and HAVING

Join Fundamentals

Transact-SQL Joins


Error in join expression: '<0s>' not recognized.

Message Text

Error in join expression: '<0s>' not recognized.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Filtering Rows with WHERE and HAVING

Join Fundamentals

Transact-SQL Joins


Error in list of function arguments: '<0s>' not recognized.

Message Text

Error in list of function arguments: '<0s>' not recognized.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals


Error in list of values.

Message Text

Error in list of values.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals


Error in list of values in IN clause.

Message Text

Error in list of values in IN clause.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Subqueries with IN


Error in list of values in IN clause: '<0s>' not recognized.

Message Text

Error in list of values in IN clause: '<0s>' not recognized.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Subqueries with IN


Error in list of values: '<0s>' not recognized.

Message Text

Error in list of values: '<0s>' not recognized.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals


Error in ON clause near '<0s>'.

Message Text

Error in ON clause near '<0s>'.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Join Fundamentals

Query Fundamentals


Error in optional FROM clause.

Message Text

Error in optional FROM clause.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the FROM Clause


Error in ORDER BY clause.

Message Text

Error in ORDER BY clause.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Sorting Rows with ORDER BY


Error in ORDER BY clause near '<0s>'.

Message Text

Error in ORDER BY clause near '<0s>'.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Sorting Rows with ORDER BY


Error in SELECT clause: alias '<0s>' not recognized.

Message Text

Error in SELECT clause: alias '<0s>' not recognized.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Assigning Result Set Column Names

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals


Error in SELECT clause: alias not recognized.

Message Text

Error in SELECT clause: alias not recognized.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Assigning Result Set Column Names

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals


Error in SELECT clause: expression near '<0s>'.

Message Text

Error in SELECT clause: expression near '<0s>'.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Assigning Result Set Column Names

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals


Error in set list in UPDATE clause.

Message Text

Error in set list in UPDATE clause.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Changing Data

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

UPDATE


Error in table name or view name in DELETE clause.

Message Text

Error in table name or view name in DELETE clause.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query. Be sure to use Quoted Identifiers as needed.

Related Topics

DELETE

Deleting Data

Delimited Identifiers

Expressions

Filtering Rows with WHERE and HAVING


Error in table name or view name in DELETE clause: '<0s>' not recognized.

Message Text

Error in table name or view name in DELETE clause: <0s>' not recognized.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query. Be sure to use quoted identifiers as needed.

Related Topics

DELETE

Deleting Data

Delimited Identifiers

Expressions

Filtering Rows with WHERE and HAVING


Error in table name or view name in INSERT clause.

Message Text.

Error in table name or view name in INSERT clause.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query. Be sure to use quoted identifiers as needed.

Related Topics

Adding Data

Delimited Identifiers

Expressions

Filtering Rows with WHERE and HAVING

INSERT


Error in table name or view name in INSERT clause: '<0s>' not recognized.

Message Text

Error in table name or view name in INSERT clause: '<0s>' not recognized.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query. Be sure to use quoted identifiers as needed.

Related Topics

Adding Data

Delimited Identifiers

Expressions

Filtering Rows with WHERE and HAVING

INSERT


Error in table name or view name in UPDATE clause.

Message Text

Error in table name or view name in UPDATE clause.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query. Be sure to use quoted identifiers as needed.

Related Topics

Changing Data

Delimited Identifiers

Expressions

Filtering Rows with WHERE and HAVING

UPDATE


Error in text following query statement: '<0s>'.

Message Text

Error in text following query statement: '<0s>'.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals


Error in values list in INSERT INTO clause.

Message Text

Error in values list in INSERT INTO clause.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Adding Data

Delimited Identifiers

Expressions

Filtering Rows with WHERE and HAVING

INSERT

Query Fundamentals


Error in values list in INSERT INTO clause: '<0s>' not recognized.

Message Text

Error in values list in INSERT INTO clause: '<0s>' not recognized.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query. Make sure the number of items in the Column list matches the number of items in the Values list.

Related Topics

Adding Data

Delimited Identifiers

Expressions

Filtering Rows with WHERE and HAVING

INSERT

Query Fundamentals


Error in WHERE clause near '<0s>'.

Message Text

Error in WHERE clause near '<0s>'.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals


Error modifying column properties.

Appears when your constraint expression contains an error.

ODBC error text

[Microsoft][ODBC SQL Server Driver][SQL Server]The name '[column value]' is illegal in this context. Only constants, constant expressions, or variables allowed here. Column names are illegal.

Explanation

A default value defined for a character column is not enclosed in single quotation marks (').

Action

Enclose the value in single quotation marks in the database column's Default Value cell, and then save the table.

Related Topics

ALTER TABLE

Columns Property

Creating and Modifying DEFAULT Definitions

Modifying Column Properties


Function argument count error.

Message Text

Function argument count error.

Explanation

A function in your query has the wrong number of arguments.

Action

Review your query syntax to locate the function.

Related Topics

Expressions

Query Fundamentals


Identity column '<0s>' in table '<1s>' must have a datatype of int, smallint, tinyint, decimal or numeric with scale of 0.

Message Text

Identity column '<0s>' in table '<1s>' must have a datatype of int, smallint, tinyint, decimal or numeric with scale of 0.

Explanation

Only certain data types can be used for Identity columns. Columns that are Identity columns contain system-generated, sequential values that uniquely identify each row within a table.

Related Topics

Creating and Modifying Identifier Columns


Ignoring illegal use of ALL.

Message Text

Ignoring illegal use of ALL.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Although the query will run, you should review your query syntax and correct the error.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

GROUP BY and ALL

Query Fundamentals


Ignoring ODBC syntax.

Message Text

Ignoring ODBC syntax.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals


Illegal expression list usage.

Message Text

Illegal expression list usage.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals


Illegal sequence use.

Message Text

Illegal sequence use.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals


Illegal use of outer join operator.

Message Text

Illegal use of outer join operator.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Join Fundamentals

Transact-SQL Joins


Incomplete column list.

Message Text

Incomplete column list.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Incomplete SET clause.

Message Text

Incomplete SET clause.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals


Incomplete values list.

Message Text

Incomplete values list.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Invalid entries must be resolved before you can exit this pane.

Message Text

Invalid entries must be resolved before you can exit this pane.

Explanation

Exiting a pane causes other panes to be updated. If there is an invalid entry in the pane you are editing, you need to change or delete it.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Invalid escape character.

Message Text

Invalid escape character.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query. Your escape character must be a single character.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Pattern Matching in Search Conditions

Query Fundamentals

Using the Select List


Invalid identifier: '<0s>'.

Message Text

Invalid identifier: '<0s>'.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Invalid name. You must provide a name for this object.

Message Text

Invalid name. You must provide a name for this object.

Explanation

An object name is required to continue. Valid names begin with an underscore (_) or a character and contain a combination of characters, numbers, and underscores.

The maximum length for a name based on the server is 32 for Microsoft® SQL Server™ 6.5 and earlier and 32 for Oracle.

Action

In general, avoid names that contain periods.

Related Topics

Uniquely Naming Database Objects


Invalid or missing expression.

Message Text

Invalid or missing expression.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Invalid or missing expression near '<0s>'.

Message Text

Invalid or missing expression near '<0s>'.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Invalid prefix or suffix characters.

Message Text

Invalid prefix or suffix characters.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Pattern Matching in Search Conditions

Query Fundamentals

Using the Select List


Invalid row index: Goto failed.

Message Text

Invalid row index: Goto failed.

Explanation

You have entered a nonnumeric value into the GoTo record field.

Action

Enter a numeric value instead. Entering a number that is greater than the number of rows in the table goes to the last record.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Invalid text or symbol.

Message Text

Invalid text or symbol.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Invalid view name.

Message Text

Invalid view name.

Explanation

The View name you've specified is not valid. Valid names begin with an underscore (_) or a character and contain a combination of characters, numbers and underscores.

The maximum length for View names is 32 for Microsoft® SQL Server™ 6.5, 32 for Oracle, and 128 for SQL Server 7.0. Do not use names with a period.

Related Topics

ALTER VIEW

CREATE VIEW

Creating a View

Delimited Identifiers

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Missing escape character in LIKE predicate.

Message Text

Missing escape character in LIKE predicate.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Pattern Matching in Search Conditions

Query Fundamentals

Using the Select List


Missing FROM clause.

Message Text

Missing FROM clause.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Missing FROM clause near '<0s>'.

Message Text

Missing FROM clause near '<0s>'.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Missing FROM keyword.

Message Text

Missing FROM keyword.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Missing FROM keyword near '<0s>'.

Message Text

Missing FROM keyword near '<0s>'.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Missing INTO keyword.

Message Text

Missing INTO keyword.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Missing INTO keyword near '<0s>'.

Message Text

Missing INTO keyword near '<0s>'.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Missing or incomplete SELECT clause.

Message Text

Missing or incomplete SELECT clause.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Missing pattern in LIKE predicate.

Message Text

Missing pattern in LIKE predicate.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Pattern Matching in Search Conditions

Query Fundamentals

Using the Select List


Missing SET keyword.

Message Text

Missing SET keyword.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Missing subquery.

Message Text

Missing subquery.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Query Fundamentals

Subquery Fundamentals


Missing subquery correlation name.

Message Text

Missing subquery correlation name.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Query Fundamentals

Subquery Fundamentals


Missing subquery or the operator you entered requires parenthesis.

Message Text

Missing subquery or the operator you entered requires parenthesis.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Query Fundamentals

Subquery Fundamentals


Must enter either TRUE or FALSE.

Message Text

Must enter either TRUE or FALSE.

Explanation

When specifying a criteria for the EXISTS statement, you must use either True for EXISTS or False for NOT EXISTS.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Subquery Fundamentals

Using the Select List


Object <0s> does not exist in the database.

Message Text

Object <0s> does not exist in the database.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


ODBC error: <0s>.

Message Text

ODBC error: <0s>.

Explanation

An ODBC error has been generated. You might have deleted a record that has a foreign key value related to it, or you might have violated a check constraint.

For more information, see your ODBC documentation.


One or more selected tables are already on the diagram.

Message Text

One or more selected tables are already on the diagram.

Explanation

You can only have one copy of any table on a diagram.

Action

If you want to create a new table that has some of the same columns as an existing table, you can duplicate an existing table as the first step in creating a new table.

Related Topics

Adding Tables to a Database Diagram


Only one clustered index can be created on table '<0s>'.

Message Text

Only one clustered index can be created on table '<0s>'.

Explanation

A clustered index is a special type of index that reorders the way records in the table are physically stored. Therefore only one clustered index can be created on each table.

Action

To create a second index on the same table, change the Clustered property setting before creating the second index.

Related Topics

Clustered Indexes

Indexes

Modifying Column Properties


Only one ROWGUIDCOL column is allowed per table.

Message Text

Only one ROWGUIDCOL column is allowed per table.

Explanation

You have attempted to assign more than one ROWGUIDCOL. The ROWGUIDCOL is a special property similar to IDENTITY and only one ROWGUIDCOL is allowed per table.

Related Topics

Modifying Column Properties

Setting Properties in a Database Diagram


Oracle does not allow full outer joins.

Message Text

Oracle does not allow full outer joins.

Explanation

You have entered a join syntax that is not supported by Oracle.

Action

Consult your Oracle documentation for details about using outer joins with an Oracle database.

Related Topics

Join Fundamentals

Transact-SQL Joins


Oracle does not support this join syntax.

Message Text

Oracle does not support this join syntax.

Explanation

You have used a join syntax that is not supported by Oracle.

Action

Consult your Oracle documentation for details about using joins with an Oracle database.

Related Topics

Join Fundamentals

Transact-SQL Joins


Outer join column may not be used with an IN predicate or subquery.

Message Text

Outer join column may not be used with an IN predicate or subquery.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Join Fundamentals

Subquery Fundamentals

Transact-SQL Joins


Query Designer cannot open this query file.

Message Text

Query Designer cannot open this query file.

Explanation

SQL Server Enterprise Manager cannot open the specified query file. The file may be corrupt or from a non-supported version of SQL Server Enterprise Manager.

Action

Verify that file is a query file.


Query has executed successfully.

Message Text

Query has executed successfully.

Explanation

The query executed successfully.


Relationship '<0s>' was modified or deleted since the diagram was loaded.

Message Text

Relationship '<0s>' was modified or deleted since the diagram was loaded.

Explanation

A modified relationship is about to be saved. It is possible that a table involved in the relationship has been deleted from the database by another user.

Action

Verify whether this relationship is meant to be modified. Changing or deleting a relationship for a table may affect other tables.

Related Topics

Database Diagrams

Deleting Key Relationships Using Database Diagrams

Working with Database Objects


Row limit value should be between <xxx> and <xxx>.

Message Text

Row limit value should be between <xxx> and <xxx>.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


SQL statement could not be parsed.

Message Text

SQL statement could not be parsed.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


SQL Verification.

Message Text
SQL Verification.
Explanation

The SQL verified successfully.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Syntax error in table reference.

Message Text

Syntax error in table reference.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Syntax error in table reference: '<0s>' not recognized.

Message Text

Syntax error in table reference: '<0s>' not recognized.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


System errors.

Two system errors can appear in the Save Incomplete dialog box when you exceed Microsoft® SQL Server limitations that are not controlled by SQL Server Enterprise Manager.

ODBC error text

[Microsoft][ODBC SQL Server Driver][SQL Server]Can't allocate space for object 'Syslogs' in database 'Guest' because the 'logsegment' segment is full. If you ran out of space in Syslogs, dump the transaction log. Otherwise, use ALTER DATABASE or sp_extendsegment to increase the size of the segment.

Explanation

This error occurs because there is insufficient log space to complete the transaction.

Action
  • Follow the recommendation in the message and delete the transaction log. (Typically this action will not entirely solve the problem.)

  • Increase the size of the database to accommodate the change. With large databases, changes that require the recreation of tables (for example, changing a column data type or size) may not be possible using SQL Server Enterprise Manager. You may need to use methods of transferring data that don't require transactions, such as bulk copying (bcp utility).
ODBC error text

[Microsoft][ODBC SQL Server Driver]Timeout expired.

Explanation

The timeout can occur when you're updating the database with any Transact-SQL changes.

Action
  • Try again later to save the diagram or selected tables.

  • Save a change script and apply it to the database at a later time.

  • Increase the SQL Query Time-out value and try to save the diagram or selected tables again.

To increase the SQL Query Time-out value

  1. From the Tools menu, choose Options.

  2. In the left pane, click Data Tools, and then click Data View.

  3. Type a new value in the SQL query time-out box.

Related Topics

ALTER DATABASE

Physical Database Files and Filegroups

remote query timeout Option

Saving a Change Script

sp_configure


Table '<0s>' is marked for deletion and was not added to the diagram.

Message Text

Table '<0s>' is marked for deletion and was not added to the diagram.

Explanation

A table that has been removed from the diagram will be deleted from the diagram when the changes are saved. The table will not, however, be deleted from the database.

Alternatively, the table has been deleted from the database by another user and cannot be added to your diagram.

Related Topics

Deleting a Table from a Database Diagram and the Database

Removing a Table from a Database Diagram

Working with Database Objects


Table '<0s>' no longer exists in the database.

Message Text

Table '<0s>' no longer exists in the database.

Explanation

The table has been deleted from the database and cannot be used in your diagram.

Related Topics

Deleting a Table from a Database Diagram and the Database


The Allow Nulls property can't be set on a column that is part of the primary key.

Message Text

The Allow Nulls property can't be set on a column that is part of the primary key.

Explanation

All columns that are part of a table's a primary key must contain aggregate unique values other than NULL.

Action

To add the column to a primary key, first clear the Allow nulls check box in the Column Property dialog box.

Related Topics

Modifying Column Properties


The Allow Nulls property can't be set on column '<0s>' because it is an identity column.

Message Text

The Allow Nulls property can't be set on column '<0s>' because it is an identity column.

Explanation

All identity columns must contain unique values other than NULL.

Action

To make the column an identity column, first clear the Allow nulls check box on the Column Property dialog box.

Related Topics

Modifying Column Properties


The columns in table '<0s>' do not match an existing enabled primary key or UNIQUE constraint.

Message Text

The columns in table '<0s>' do not match an existing enabled primary key or UNIQUE constraint.

Explanation

At least one table participating in a relationship must have either a PRIMARY KEY or a UNIQUE constraint.

Action

After setting up a PRIMARY KEY or a UNIQUE constraint for one of the tables you've selected, you can then define other relationships for that table.

Related Topics

Creating and Modifying UNIQUE Constraints

Creating SQL Server Tables

Key Object

Primary Key Constraints


The current version of the ODBC driver is not valid.

Message Text

The current version of the ODBC driver is not valid.

Explanation

Your ODBC driver is not current.

Action

For best results, use the ODBC driver provided with the Microsoft® SQL Server™ installation.

For more information, see your ODBC documentation.


The datatype of column '<1s>' in the '<0s>' table can't be changed because it participates in index '<2s>'.

Message Text

The datatype of column '<1s>' in the '<0s>' table can't be changed because it participates in index '<2s>'.

Explanation

The sum of the lengths of all columns in an index cannot exceed 256 bytes. Changing to the specified data type would exceed the maximum index size of <3d> bytes.

Related Topics

Changing the Data Type Assigned to a Column

Table Indexes


The datatype or size property of '<0s>.<1s>' doesn't match '<2s>.<3s>'.

Message Text

The datatype or size property of '<0s>.<1s>' doesn't match '<2s>.<3s>'.

Explanation

When creating a foreign key relationship, the data types of selected columns must match.

Action

Select a column with the same data type and size as the related column.

Related Topics

Creating and Managing Database Diagrams

Working with Database Objects


The Default Value property can't be set on column '<0s>' because it is an identity column.

Message Text

The Default Value property can't be set on column '<0s>' because it is an identity column.

Explanation

Identity columns contain system-generated sequential values that uniquely identify each row within the table. Therefore, identity columns cannot have default values.

Related Topics

Creating and Modifying DEFAULT Definitions

Creating and Modifying Identifier Columns

DEFAULT Definitions

sp_bindefault


The existing relationship must have at least one pair of related columns.

Message Text

The existing relationship must have at least one pair of related columns.

Explanation

There must be matching columns on both sides of a foreign key relationship. Deleting a column that is part of a relationship will disable the relationship.

Related Topics

Creating and Managing Database Diagrams

Working with Database Objects


The Group By function is not supported in WHERE clauses.

Message Text

The Group By function is not supported in WHERE clauses.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Grouping Rows with GROUP BY

Query Fundamentals

Using the Select List


The Identity property can't be set on column '<0s>' because it allows null values.

Message Text

The Identity property can't be set on column '<0s>' because it allows null values.

Explanation

Identity columns contain system-generated sequential values that uniquely identify each row within the table. Therefore, identity columns cannot have null values.

Related Topics

Creating and Modifying Identifier Columns

Key Object

Modifying Column Properties

Setting Properties in a Database Diagram


The Identity property can't be set on column '<0s>' because it has a default value.

Message Text

The Identity property can't be set on column '<0s>' because it has a default value.

Explanation

Identity columns contain system-generated sequential values that uniquely identify each row within the table. Therefore, identity columns cannot have default values.

Related Topics

Creating and Modifying DEFAULT Definitions

DEFAULT Definitions

Modifying Column Properties


The NOT keyword may not be used in a column cell.

Message Text

The NOT keyword may not be used in a column cell.

Explanation

When entering a NOT EXIST subquery into the Column cell, enter just the EXIST clause. Then go to the Criteria cell and enter False for it.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Subquery Fundamentals

Using the Select List


The number of selected columns exceeds the number of columns in the target table.

Message Text

The number of selected columns exceeds the number of columns in the target table.

Explanation

You cannot create a compound foreign key relationship using more columns than exist in the target table.

Action

Make sure the number of columns you've selected matches the number in the target table.

Related Topics

Creating and Managing Database Diagrams

Working with Database Objects


The ORDER BY function is not supported for CREATE TABLE queries.

Message Text

The ORDER BY function is not supported for CREATE TABLE queries.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

CREATE TABLE

Designing Tables

Expressions

Query Fundamentals

Sorting Rows with ORDER BY


The outer join operator (+) cannot be used as an OR operand.

Message Text

The outer join operator (+) cannot be used as an OR operand.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Join Fundamentals

Logical Operators

Query Fundamentals

Transact-SQL Joins


The outer join operator (+) cannot be used in QBE.

Message Text

The outer join operator (+) cannot be used in QBE.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Join Fundamentals

Transact-SQL Joins


The primary key or UNIQUE constraint cannot be changed until its existing relationships are deleted.

Message Text

The primary key or UNIQUE constraint cannot be changed until its existing relationships are deleted.

Explanation

You cannot change a table's primary key or unique constraint while other foreign key relationships are still in place.

Action

To change a table's primary key or unique constraint, first delete all existing relationships for the table.

Related Topics

Deleting Key Relationships Using Database Diagrams


The primary key or Unique constraint cannot be changed while relationships to the existing primary key or Unique constraint are enforced.

Message Text

The primary key or Unique constraint cannot be changed while relationships to the existing primary key or Unique constraint are enforced.

Explanation

You cannot change a table's primary key or unique constraint while other foreign key relationships are still in place.

Action

To change a table's primary key or unique constraint, first delete all existing relationships for the table.

Related Topics

Deleting Key Relationships Using Database Diagrams


The query cannot be executed because some files are missing or not registered.

Message Text

The query cannot be executed because some files are missing or not registered.

Explanation

SQL Server Enterprise Manager cannot locate your query files and cannot run your query. You may need to reinstall the product.

Related Topics

Overview of Installing SQL Server


The Query Designer does not support the critical ODBC APIs.

Message Text

The Query Designer does not support the critical ODBC APIs.

Explanation

The API you are attempting to use is not supported.

Action

Refer to your ODBC driver documentation. Whenever possible, use ODBC drivers provided by Microsoft.


The Query Designer does not support the current ODBC API.

Message Text

The Query Designer does not support the current ODBC API.

Explanation

The API you are attempting to use is not supported.

Action

Refer to your ODBC driver documentation. Whenever possible, use ODBC drivers provided by Microsoft.


The Query Designer supports no more than one data source for this type of query.

Message Text

The Query Designer supports no more than one data source for this type of query.

Explanation

Only one data source can be used with this query type.

Related Topics

Query Fundamentals


The specified OR group number is already in use.

Message Text

The specified OR group number is already in use.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Logical Operators

Query Fundamentals


The total size of an index or primary key cannot exceed 256 bytes.

Message Text

The total size of an index or primary key cannot exceed 256 bytes.

Explanation

The sum of the lengths of all columns in an index cannot exceed 256 bytes. Changing to the specified data type would exceed the maximum index size of <3d> bytes.

Related Topics

Creating and Modifying Identifier Columns

Creating SQL Server Indexes

Indexes


The value you entered is not consistent with the data type of the column.

Message Text

The value you entered is not consistent with the data type of the column.

Explanation

Entered values must match the column data types.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


There are not enough columns to match the subquery select list.

Message Text

There are not enough columns to match the subquery select list.

Explanation

The SELECT statement needs to include the same number of columns that the embedded subquery returns.

Related Topics

Expressions

Query Fundamentals

Subquery Fundamentals

Using the Select List


There are not enough columns to match the value list.

Message Text

There are not enough columns to match the value list.

Explanation

An UPDATE or INSERT statement contains more values than the table being updated.

Action

Review your SQL statement to make sure the number of columns matches the table.

Related Topics

Adding Data

Changing Data

INSERT

UPDATE

Using the Select List


There is no unique table in this query.

Message Text

There is no unique table in this query.

Explanation

The query needs to unambiguously identify which table to return values from.

Related Topics

Query Fundamentals

Using Table Aliases

Using the FROM Clause


This ALIAS name is already being used.

Message Text

This ALIAS name is already being used.

Explanation

Alias names must be unique. Enter a different alias name.

Related Topics

Assigning Result Set Column Names

Query Fundamentals

Using Table Aliases

Using the FROM Clause


This cell contains the text string "<NULL>" which may not be processed correctly.

Message Text

This cell contains the text string "<NULL>" which may not be processed correctly.

Action

Use NULL or NOT NULL for comparing null data. Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Query Fundamentals

Using the Select List


This IS operator can only be used with NULL or NOT NULL.

Message Text

This IS operator can only be used with NULL or NOT NULL.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals


This operator cannot be used with columns with data type "uniqueidentifier".

Message Text

This operator cannot be used with columns with data type "uniqueidentifier".

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Query Fundamentals

Using Data Types


This table is not in the query definition.

Message Text

This table is not in the query definition.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Query Fundamentals

Using the Select List


Too many characters for field width.

Message Text

Too many characters for field width.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Query Fundamentals

Using the Select List


Unable to add constraint.

Appears when a new constraint has failed on existing data or your constraint expression contains an error. Compare the ODBC error text that appears in the Save Incomplete dialog box with the error text shown below to determine the appropriate solution.

ODBC error text

[Microsoft][ODBC SQL Server Driver][SQL Server]Data exists in table '[table name]', database '[database name]', that violates CHECK constraint '[constraint name]' being added. ALTER command has been aborted.

[Microsoft][ODBC SQL Server Driver][SQL Server]Unable to create constraint. See previous errors.

Explanation

Existing data does not match the check constraint.

Action

  • Change the data (for example, by using SQL Server Enterprise Manager) to match the constraint.

    •

  • Clear the Check existing data on creation check box in the Tables property page for the check constraint in question.

    •

  • Change the constraint expression in the Tables property page for the check constraint in question.
    •

ODBC error text

[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column '[column name]' specified in constraint definition.

[Microsoft][ODBC SQL Server Driver][SQL Server]Unable to create constraint. See previous errors.

Explanation

  • The text value in the check constraint expression on the Tables property page is not enclosed in single quotation marks (').

    •

  • A column that participates in the check constraint has been renamed. For example, if the original constraint had the expression (cityname = 'Paris') and you renamed the column to city, you would see the same error except that 'cityname' would be the invalid column shown in the error message.
    •

Action

Correct the expression and save the table.

ODBC error text

[Microsoft][ODBC SQL Server Driver][SQL Server]Line [line number]: Incorrect syntax near '[operator]'.

Explanation

The expression defined for the check constraint (in the Tables property page) or the default constraint (in the Default Value cell) is not valid Transact-SQL syntax. For example, the check constraint expression 'city equals Paris' was typed instead of 'city = Paris'.

Action

Correct the expression and save the table.

Related Topics

Creating and Managing Database Diagrams

Filtering Rows with WHERE and HAVING

Query Fundamentals

Working with Database Objects


Unable to create index.

Appears when a new index has failed on existing data.

ODBC error text

[Microsoft][ODBC SQL Server Driver][SQL Server]Create unique index aborted on duplicate key. Primary key is '[primary key data]'

[Microsoft][ODBC SQL Server Driver][SQL Server]Unable to create constraint. See previous errors.

Explanation

A unique index was created in the Indexes/Keys property page but duplicate data exists in the database. The value after the phrase "Primary key is" is the first duplicate value that Microsoft® SQL Server™ found as it created the index.

Action

  • Remove duplicate data from the database (for example, by using SQL Server Enterprise Manager).

    •

  • Change the option in the Indexes/Keys property page to allow duplicate rows in the index.
    •

Related Topics

Creating SQL Server Indexes

Indexes

UNIQUE Constraints


Unable to create relationship.

Appears when a new constraint has failed on existing data.

ODBC error text

[Microsoft][ODBC SQL Server Driver][SQL Server]Data exists in table '[table name]', database '[database name]', that violates FOREIGN KEY constraint '[constraint name]' being added. ALTER command has been aborted.

[Microsoft][ODBC SQL Server Driver][SQL Server]Unable to create constraint. See previous errors.

Explanation

Existing data fails the foreign key constraint.

Action
  • Change the data that fails the foreign key constraint by running a query to show all the foreign key values that do not match primary key values. For example, to find foreign key values in the job_id column of the employee table that do not match primary key values in the jobs table, run a query with this Transact-SQL syntax:
    SELECT employee.emp_id, employee.job_id
FROM employee LEFT OUTER JOIN jobs ON employee.job_id = jobs.job_id
WHERE (jobs.job_id IS NULL)
  • Clear the Check existing data on creation check box in the Relationships property page.

Related Topics

Creating and Managing Database Diagrams

Filtering Rows with WHERE and HAVING

Query Fundamentals

Working with Database Objects


Unable to locate data source.

Message Text

Unable to locate data source.

Explanation

The specified data source cannot be found.

Action

Check the data source location and the entered location.


Unable to modify table.

Appears when a new constraint has failed on existing data. Compare the ODBC error text that appears in the Save Incomplete dialog box with the two ODBC errors shown below to determine the appropriate solution.

ODBC error text

[Microsoft][ODBC SQL Server Driver][SQL Server]The column [column name] in table Tmp_ [table name] may not be null.

Explanation

A new database column has been added that doesn't allow null values and doesn't provide a default value. The table name in question appears after "Tmp_".

Action

Change the column properties. Either select the Allow Nulls property or type a Default Value setting.

ODBC error text

[Microsoft][ODBC SQL Server Driver][SQL Server]Attempt to insert the value NULL into column '[column name]', table '[database name] TMP_ [table name]'; column does not allow nulls. INSERT fails.

[Microsoft][ODBC SQL Server Driver][SQL Server]Command has been aborted.

Explanation

The Allow Nulls property on an existing database column has been cleared, but the column has existing null values in it. The table name in question appears after "TMP_".

Action

Go to the column and select the Allow Nulls property.

Related Topics

Modifying Column Properties


Unable to parse expression.

Message Text

Unable to parse expression.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Unable to parse query text.

Message Text

Unable to parse query text.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Unable to parse statement.

Message Text

Unable to parse statement.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Query Fundamentals

Using the Select List


Unable to preserve trigger.

Appears when your trigger text references a column that has been renamed, deleted, or assigned a different data type.

ODBC error text

[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name '[column name]'.

- Unable to preserve trigger '[trigger name]'.

Explanation

A change to the table required the table to be re-created. When a table is re-created, the triggers attached to that table are automatically re-created as well.

Action

The recommended solution depends on the type of change made to the column referenced by the trigger.

To preserve a trigger that references a renamed column

  • Rename the column to its original name and then save the table. This action will allow the table to be re-created. You can now rename the column, save the table again, and then edit the trigger to fix the renamed columns.

To preserve a trigger that references a deleted column

  1. Expand the table that the trigger is attached to.

  2. Right-click the trigger you want to change and choose Open from the shortcut menu.

  3. Edit the trigger text and save the trigger.

  4. Save the table or database diagram.

To preserve a trigger that references a column whose data type changed

  1. In your database diagram, click the Save Change Script button in the Database Diagram toolbar. For more information, see Saving a Change Script in SQL Server Books Online for SQL Server 7.0.

  2. Open the change script.

  3. In Data View, expand the table that the incorrect trigger is attached to.

  4. Delete the incorrect trigger.

  5. Create a new trigger for the table.

  6. In the change script, select the trigger text. The set of statements that creates the trigger begins with a CREATE TRIGGER statement.

  7. Copy the selected text into the Trigger window.

  8. On the toolbar, click the Save button. This action saves the trigger in the database and adds the trigger to the table in the Tables folder.

  9. Repeat Steps 3 through 8 for each trigger you want to recreate.

Related Topics

Creating a Trigger

Trigger Object

Triggers


Unknown column.

Message Text

Unknown column.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Query Fundamentals

Using the Select List


Unknown conversion specification.

Message Text

Unknown conversion specification.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Data Type Conversion

Expressions

Filtering Rows with WHERE and HAVING

Using the Select List


Unnecessary use of CONVERT function.

Message Text

Unneccesary use of CONVERT function.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Data Type Conversion

Expressions

Filtering Rows with WHERE and HAVING

Using the Select List


Unsupported SQL.

Message Text

Unsupported SQL.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Expressions

Filtering Rows with WHERE and HAVING

Using the Select List


View already exists in the database.

Message Text

View already exists in the database.

Explanation

Views must have unique names within the database.

Action

Enter a different name for the view.

Related Topics

Creating a View

Using the Select List

View Object


You are not logged in as the database owner or system administrator. You will not be able to save changes to tables that you do not own.

Message Text

You are not logged in as the database owner or system administrator. You will not be able to save changes to tables that you do not own.

Explanation

In Microsoft® SQL Server each database has a database owner (dbo). The dbo is the creator of the database and has system administrator privileges inside the database. It is the dbo who determines the access and capabilities provided to other users.

Action

If you are not the dbo, you will still be able to create diagrams showing any tables that you have permissions to see, however you won't be able to perform all edits. Certain edits require SQL Server CREATE TABLE permission.

Related Topics

Working in a Multiuser Environment

Working with Database Objects


You may not use a link server object as a destination with this query type.

Message Text

You may not use a link server object as a destination with this query type.

Explanation

The selected query type does not support using link server objects as destinations.

Related Topics

Configuring Linked Servers

Query Fundamentals

Using the Select List


You may not use ALL with CUBE or ROLLUP.

Message Text

You may not use ALL with CUBE or ROLLUP.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

GROUP BY and ALL

Query Fundamentals

Summarizing Data

Using the Select List


You may not use an openrowset as a destination with this query type.

Message Text

You may not use an openrowset as a destination with this query type.

Explanation

There is an error in the syntax of your query. SQL Server Enterprise Manager has attempted to locate the source of the error.

Action

Review your query syntax and correct the error before running your query.

Related Topics

Identifying a Data Source Using the Ad Hoc Name

Query Fundamentals

Using the Select List


You must enter an expression in the Column cell before continuing.

Message Text

You must enter an expression in the Column cell before continuing.

Explanation

Enter an expression in the column cell.

Related Topics

Expressions

Query Fundamentals

Using the Select List


Your entry cannot be converted to a valid datetime value.

Message Text

Your entry cannot be converted to a valid datetime value.

Explanation

In general, the ANSI standard date format is used with databases that represent dates using a true date data type. In contrast, the datetime format is used with databases that support a datetime data type.

Related Topics

Data Type Conversion

Expressions

Filtering Rows with WHERE and HAVING

Using the Select List


ODBC Error Messages

SQLERROR returns SQLSTATE values as defined by the X/Open and SQL Access Group SQL CAE specification (1992). SQLSTATE values are strings that contain five characters. The following table lists SQLSTATE values that a driver can return for SQLError.

The character string value returned for SQLSTATE consists of a two-character class value followed by a three-character subclass value. A class value of 01 indicates a warning and is accompanied by a return code of SQL_SUCCESS_WITH_INFO. Class values other than 01, except for the class IM, indicate an error and are accompanied by a return code of SQL_ERROR. The class IM is specific to warnings and errors that derive from the implementation of ODBC. The subclass value 000 in any class is for implementation defined conditions within the given class. The assignment of class and subclass values is defined by SQL-92.

Note Although successful execution of a function is indicated typically by a return value of SQL_SUCCESS, the SQLSTATE 00000 also indicates success.

SQLSTATE | ODBC API (Driver Manager) error
00000 | Success
01000 | General warning
01002 | Disconnect error
01004 | Data truncated
01006 | Privilege not revoked
01S00 | Invalid connection string attribute
01S01 | Error in row
01S02 | Option value changed
01S03 | No rows updated or deleted
01S04 | More than one row updated or deleted
01S05 | Cancel treated as FreeStmt/Close
01S06 | Attempt to fetch before the result returned the first rowset
07001 | Wrong number of parameters
07006 | Restricted data type attribute violation
07S01 | Invalid use of default paramater
08001 | Unable to connect to data source
08002 | Connection in use
08003 | Connection not open
08004 | Data source rejected establishment of connection
08007 | Connection failure during transaction
08S01 | Communication link failure
21S01 | Insert value list does not match column list
21S02 | Degree of derived table does not match column list
22001 | String data right truncation
22002 | Indicator variable required but not supplied
22003 | Numeric value out of range
22005 | Error in assignment
22008 | Datetime field overflow
22012 | Division by zero
22026 | String data, length mismatch
23000 | Integrity constraint violation
24000* | Invalid cursor state
25000 | Invalid transaction state
28000 | Invalid authorization specification
34000 | Invalid cursor name
37000 | Syntax error or access violation
3C000 | Duplicate cursor name
40001 | Serialization failure
42000 | Syntax error or access violation
70100 | Operation aborted
IM001 | Driver does not support this function
IM002 | Data source name not found and no default driver specified
IM003 | Specified driver could not be loaded
IM004 | Driver's SQLAllocEnv failed
IM005 | Driver's SQLAllocConnect failed
IM006 | Driver's SQLSetConnectOption failed
IM007 | No data source or driver specified; dialog prohibited
IM008 | Dialog failed
IM009 | Unable to load translation DLL
IM010 | Data source name too long
IM011 | Driver name too long
IM012 | DRIVER keyword syntax error
IM013 | Trace file error
S0001 | Base table or view already exists
S0002 | Base table not found
S0011 | Index already exists
S0012 | Index not found
S0021 | Column already exists
S0022 | Column not found
S0023 | No default for column
S1000 | General error
S1001 | Memory allocation failure
S1002 | Invalid column number
S1003 | Program type out of range
S1004 | SQL data type out of range
S1008 | Operation canceled
S1009 | Invalid argument value
S1010 | Function sequence error
S1011 | Operation invalid at this time
S1012 | Invalid transaction operation code specified
S1015 | No cursor name available
S1090 | Invalid string or buffer length
S1091 | Descriptor type out of range
S1092 | Option type out of range
S1093 | Invalid parameter number
S1094 | Invalid scale value
S1095 | Function type out of range
S1096 | Information type out of range
S1097 | Column type out of range
S1098 | Scope type out of range
S1099 | Nullable type out of range
S1100 | Uniqueness option type out of range
S1101 | Accuracy option type out of range
S1103 | Direction option out of range
S1104 | Invalid precision value
S1105 | Invalid parameter type
S1106 | Fetch type out of range
S1107 | Row value out of range
S1108 | Concurrency option out of range
S1109 | Invalid cursor position
S1110 | Invalid driver completion
S1111 | Invalid bookmark value
S1C00 | Driver not capable
S1DE0 | No data at execution values pending
S1T00 | Timeout expired

* In SQL Server Enterprise Manager, you may receive the "Invalid cursor state" error message when Microsoft® SQL Server™ runs out of resources while attempting to save selected tables or a database diagram. This error is returned because of insufficient space in your database or transaction log to complete the save process. To correct this problem, check to see if the database or the transaction log is full. If so, increase the size of the database to accommodate the change. Check other system resources or contact your system administrator.

In addition to the standard ODBC error messages located in your ODBC programmer's reference documentation, the SQL Server ODBC driver version 3.70 can return error messages for certain SQLSTATE values, as shown in this table.

SQLSTATE | SQL SERVER DRIVER ERROR | Description
01000 | %ld rows sent to SQL Server. Total sent: %ld. | A batch size of rows have been sent to SQL Server using the BCP API.
01000 | %ld rows successfully bulk-copied to host-file. Total received: %ld. | A batch size of rows have been written to the host file using the BCP API.
01000 | Access to database configured in the DSN has been denied. Default used. | Either the database does not exist or the user does not have permission to access the database. The default database configured for the login ID was used.
01000 | An error has occurred during an attempt to access the log file, logging disabled. | The log file for driver statistics or long-running queries could not be used. The logging of driver statistics or long-running queries has been disabled.
01000 | Connected to backup server. | The SQL Server version 6.5 primary server was not available, so the connection was made to the fallback server.
01000 | Language configured in the DSN is not supported. Default used. | Either the language name is invalid or the language is not installed on the server. The default language configured for the login ID was used.
01000 | Null bit data forced to zero. | A bit field containing a NULL is being loaded to a server that does not support NULL bit data. The field was set to zero.
01000 | Procedure executed with 'EXEC'. No output parameters returned. | The procedure could not be executed as an RPC and output parameters were specified. Because the procedure had to be executed with EXEC, no output parameters will be stored.
01000 | SQL Debugging disabled. | SQL Debugging could not be enabled, probably because the SQL Server is not configured for SQL debugging.
01000 | The ODBC catalog stored procedures installed on server %s are version %s; version %02d.%02d.%4.4d or later is required to ensure proper operation. Please contact your system administrator. | Install the ODBC catalog stored procedures by executing \Msqql7\Install\Instcat.sql.
01000 | Zero length data forced to length 1. | A zero-length binary or character field is being loaded into SQL Server version 6.5 or earlier that does not support zero-length data. The field was forced to a 1 byte blank or binary zero.
01S02 | Cursor concurrency changed. | The application requested a concurrency that could not be honored because of the type of request or query. A different concurrency was used instead.
01S02 | Cursor type changed. | The application requested a cursor type that could not be honored because of the type of request or query. A different cursor type was used instead.
01S02 | Packet size change not honored by server, server size used. | The application requested a nondefault packet size that could not be supported by SQL Server. The server default size was used instead.
01S02 | Packet size changed. | The application requested a nondefault packet size that was outside of the limits of allowable size. Either the smallest or largest packet size was used instead, depending if the requested size was too small or too large.
01S02 | Login timeout changed. | The application requested a login time-out that was too large. The maximum login time out was used instead.
07006 | Conversions not allowed using bcp_moretext. | The application using bcp_moretext must have the same field type as it does the column type.
08004 | Server rejected the connection; Access to selected database has been denied. | Either the database does not exist or the user does not have permission to access the database.
08004 | Server rejected the connection; Language specified is not supported. | Either the language name is invalid or the language is not installed on SQL Server.
HY024 | Database is invalid or cannot be accessed. | Either the database does not exist or the user does not have permission to access the database.
IM006 | Packet size change not supported by server, default used. | The application requested a nondefault packet size that SQL Server does not support. The client default size was used.
HY000 | All bound columns are read-only. | There must be an updatable column to use SQLSetPos or SQLBulkOperations to change or insert a row.
HY000 | An old netlib (%s) has been detected. Please delete it and restart the application. | The netlib that was being loaded was out of date. The driver requires a newer netlib. The problem could be a netlib in the current directory of the application, which is being loaded instead of the one in the system directory, or it could be that the netlib was not installed properly or is corrupted. If the netlib specified in the error text exists elsewhere than in the Windows system directory, delete it. If the netlib exists only in the system directory, install the client utilities on the client and restart the application.
HY000 | Attempt to bulk-copy a NULL value into a Server column which does not accept NULL values. | The field contains a NULL value, but the column does not allow NULL values.
HY000 | Attempt to bulk-copy an oversized column to the SQL Server. | The length supplied for a column is larger than the column definition in the table.
HY000 | Attempt to read unknown version of BCP format file. | The header line in the bcp format file was not version 4.2, 6.0, or 7.0.
HY000 | Bad bulk-copy direction. Must be either IN or OUT. | The bcp_init call did not specify a valid direction for the eDirection parameter.
HY000 | Bad terminator. | The terminator string supplied in bcp_bind is invalid.
HY000 | Bcp host-files must contain at least one column. | No columns were selected to be loaded.
HY000 | Cannot generate SSPI context. | The driver could not obtain an SSPI context required for integrated security. The native error will contain the Win32 error code.
HY000 | Cannot initialize SSPI package. | The driver could not obtain an SSPI context required for integrated security. The native error will contain the Win32 error code.
HY000 | Communication module is not valid. Driver has not been correctly installed. | The network library .dll is corrupted. Install the client utilities on the client and restart the application.
HY000 | Connection is busy with results for another hstmt. | The SQL Server ODBC driver allows only one active hstmt. For more information, see Using Default Result Sets.
HY000 | Connection is not enabled for BCP. | The application using the BCP API must set the SQLSetConnectAttr or SQL_SS_COPT_BCP attribute before connecting.
HY000 | Failure during closing of connection. | The ConnectionClose function in the network library failed. This problem is typically caused by a network or SQL Server problem.
HY000 | For BCP, all variable-length data must have either a length-prefix or a terminator specified. | bcp_bind was called with SQL_VARYLEN_DATA, but neither a prefix length nor a terminator was specified.
HY000 | Host-file columns may be skipped only when copying into the server. | A bcp out format file specified that a column should be skipped. This is not allowed. Either create a view containing only the desired columns and bcp out from that view, or use the -Q flag to provide a SELECT statement selecting only the desired columns.
HY000 | Incorrect host-column number found in BCP format-file. | The format file contains a column number greater than the number of columns in the table.
HY000 | I/O error while reading bcp data-file. |
HY000 | I/O error while reading BCP format file.
HY000 | I/O error while writing bcp data-file.
HY000 | I/O error while writing bcp error-file.
HY000 | Invalid option. | The eOption parameter to bcp_control was not valid.
HY000 | Non-default parameter not allowed after default parameter. | Parameters to a stored procedure cannot have a non-default value after any preceding parameter has been specified with the default value.
HY000 | Not enough columns bound. | For a bcp out, not all columns of the table were bound. Either create a view which contains only the desired columns and bcp out from that view or, use the -Q flag to provide a SELECT statement selecting only the desired columns.
HY000 | ODBC BCP/Driver version mismatch. | The Sqlsrv32.dll and Odbcbcp.dll .dlls do not have identical versions. Install the client utilities on the client and restart the application.
HY000 | Protocol error in TDS stream. | The TDS stream from the server is invalid. This problem is typically caused by a SQL Server problem. Check the SQL Server error log.
HY000 | Table contains less rows than first row count. | A starting row number was supplied, but the table on the server did not contain that number of rows. No rows were copied to the host-file.
HY000 | Table contains less rows than last row count. | An ending row number was supplied, but the table on the server did not contain that number of rows.
HY000 | Table has no text/image columns. | bcp_moretext was called, but the table does not contain any text or image columns.
HY000 | TDS buffer length too large. | The TDS stream from the server is invalid. This problem is typically caused by a SQL Server problem. Check the SQL Server error log.
HY000 | Text column data incomplete. | The summation of the lengths supplied by bcp_moretext did not match the length supplied in bcp_bind or bcp_collen.
HY000 | The BCP host-file contains less rows than first row count. | A starting row number was supplied, but the host-file did not contain that number of rows. No rows were loaded.
HY000 | The row length exceeds SQL Server's maximum allowable size. | The summation of the data lengths for a row is larger than the maximum row size.
HY000 | The stored procedure required to complete this operation could not be found on the server (they were supplied with SQL Server). Please contact your system administrator. | Install the ODBC catalog stored procedures by executing \Msqql7\Install\Instcat.sql.
HY000 | Unable to load communication module. Driver has not been correctly installed. | The network library .dll specified for the connection does not exist on this client. Install the client utilities on the client and restart the application.
HY000 | Unable to open BCP host data-file. | The file name specified in the bcp_init call does not exist or is opened by another application.
HY000 | Unable to open BCP error-file. | The error file name specified in the bcp_init call does not exist or is opened by another application.
HY000 | Unable to read driver version. | The driver was unable to read the version block in its .DLL. Install the client utilities on the client and restart the application.
HY000 | Unexpected EOF encountered in BCP data-file. | During a bcp in operation, end-of-file was detected on the data file while in the middle of processing the last row. This is typically caused by having a different number of columns, types, nullability, or sizes between the original table and the table being loaded.
HY000 | Unicode conversion failed. | An error occurred during conversion to or from a Unicode string. The native error will contain the Win32 error code.
HY000 | Unicode conversion failed. The code page of the SQL server must be installed on the client system. | The server code page must exist on the client for proper operation. Either clear the Auto Translate check box for the DSN or install the code page of the server on the client. The server code page can be determined by running EXEC sp_server_info 18.
HY000 | Unknown token received from SQL Server. | The TDS stream from the server is invalid. This error is typically caused by a problem on the server. Check the SQL Server error log.
HY000 | Warning: Partial insert/update. The insert/update of a text or image column(s) did not succeed. | A failure during insertion or update of a text, image, or ntext column occurred. That column will not contain the proper data. Roll back the transaction, if possible.


Finding Supplemental Error Message Information

Over time, more information about Microsoft® SQL Server™ version 7.0 error messages, either documented or not documented in this section, may become available. For current error message information, see SQL Server version 7.0 Updated Error Message Information at http://www.microsoft.com/isapi/redir.dll?prd=support&ar=sqlbook


Adding User-Defined Error Messages

User-defined error messages can be added to the sysmessages table using the system stored procedure sp_addmessage. At a minimum, you can specify the message number, the severity level, and the message text using sp_addmessage.

Similar to specifying user-defined error messages with RAISERROR, use error message numbers greater than 50000 and severity levels from 0 through 18. Only system administrators can issue RAISERROR with a severity level from 19 through 25.

Related Topics

sp_addmessage